Mine3 - Web3 Minecraft
Chanotai Krajeam
Author
Mine3
A open-source Minecraft plugins that enable Minecraft to interact with the Web3 world.
Hello, I was just thinking about how we can integrate Minecraft with the Web3 world. For example, if we want to store player data or use any economy that interacts with the blockchain, which solution will give the best result? At first, I considered using a command like /save {address}
to save player items with the given address to the chain, but this could lead to user errors. So, I came up with a second solution, which is Mine3.
But, unfortunately, Minecraft states that “blockchain technologies are not permitted to be integrated into our client and server applications” (see more). I just want to share an idea on whether we can find a breakthrough with this restriction.
User Flow
This is user flow from the solution that I talk about
- When a user joins the server, Mine3 generates a token and sends it to the player to log in on the website.
- User login and signs with their EVM wallet on the website.
- Then, Mine3 changes the player’s name, sets permissions, and restores the player’s state from before they disconnected, based on the address the user signed in with.
- When the user leaves the server, Mine3 stores the player data.
About Mine3
Mine3 offers 5 modules you can choose from:
- Mine3 Frontend: A server’s website for authenticating players using an EVM wallet
- Mine3Lib: A central library for Mine3 plugins, providing standards for integrating Web3 services with our infrastructure
- Mine3Auth: An authentication service plugin for Minecraft servers, ensuring secure and efficient user authentication
- Mine3Permission: A permission manager plugin for Mine3, driven by the address concept, designed to manage player permissions effectively
- Mine3Standard: Similar to the EssentialX plugin, providing standard commands to support address-based operations
You can see installation guideline, documents and jar file in github repository. Github : https://github.com/boomchanotai/Mine3
Technical Information
- Mine3 stores player cache data (including address and UUID) in Redis and player state (such as last location, gamemode, and flying status) in PostgreSQL before the player disconnects. Every time a player sends commands with an address, the system derives the information from Redis.
- Mine3Auth use Javalin as HTTP server to verify signatures and act as the trigger point for player authentication.
For future development
Mine3Lib is provided as a central library for Mine3 plugins. If you prefer not to use the Mine3Auth plugin, you can develop your own authentication plugin based on the provided guidelines. Your custom plugin will seamlessly integrate with Mine3Standard and Mine3Permission.