prismarine-realms
Node.JS Wrapper around both the Java & Bedrock Realms API. Minecraft Realms is a subscription based service provided by Mojang where users can create/manage their own private server. The intention of this package is to provide easy access to the internal API used to manage Realms such as opening/closing a Realm, managing players, getting host information and much more.
Installation
npm install prismarine-realms
Usage
RealmAPI
.from(authflow: Authflow, platform: 'bedrock' | 'java')
Takes an Authflow instance from prismarine-auth, you can see the documentation for this here.
API
Definitions
Param | Type | Description |
---|
realmId | string | The ID of the Realm |
realmInviteCode | string | The invite code for the Realm (Only on Bedrock) |
username | string | The username of player |
uuid | string | The unique ID of the player, w/o hyphens |
xuid | string | The Xbox User ID of the targeted player |
const { Authflow } = require('prismarine-auth')
const { RealmAPI } = require('prismarine-realms')
const authflow = new Authflow()
const api = RealmAPI.from(authflow, 'bedrock')
getRealms()
Gets a list of Realms the authenticating account has joined or owns
await api.getRealms()
getRealm(realmId: string)
Gets detailed information about a Realm if owned
await api.getRealm('1234567')
getAddress()
Gets the address for the Realm
const realm = await api.getRealm('1234567')
await realm.getAddress()
invitePlayer(uuid: string, name: string)
Invites a player to the Realm
const realm = await api.getRealm('1234567')
await realm.invitePlayer('a8005260a332457097a50bdbe48a9a21', 'Steve')
open()
Opens a Realm. Allows players to join
const realm = await api.getRealm('1234567')
await realm.open()
close()
Closes a Realm. Removes all current players and restricts joining
const realm = await api.getRealm('1234567')
await realm.close()
Using prismarine-realms with Mineflayer, Node Minecraft Protocol and Bedrock Protocol
Prismarine-auth is used in Mineflayer to allow quick connection to owned/joined Realms by providing a pickRealm
function which should return a single Realm instance. It will then handle getting the host information and connect your bot to that Realm. The process of getting the Realms connection is handled in the protocol libraries meaning the same options can be passed there as well.
Mineflayer
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
username: 'example',
auth: 'microsoft',
realms: {
pickRealm: (realms) => realms.find(realm => realm.name === 'My Realm')
}
})
Node Minecraft Protocol
const protocol = require('minecraft-protocol');
const client = protocol.createClient({
username: 'example',
auth: 'microsoft',
realms: {
pickRealm: (realms) => realms.find(realm => realm.name === 'My Realm')
}
});
Bedrock Protocol
const protocol = require('bedrock-protocol');
const client = protocol.createClient({
username: 'example',
realms: {
pickRealm: (realms) => realms.find(realm => realm.name === 'My Realm')
}
});