dart_minecraft 0.6.0 dart_minecraft: ^0.6.0 copied to clipboard
Utilities for Minecraft and Mojang Web-APIs, authentication, and using NBT Files.
dart_minecraft #
A simple Dart library for interfacing with the Mojang and Minecraft APIs. It also includes NBT read/write functionality and functions to ping Minecraft: Java Edition servers.
You can simply import the library like this:
import 'package:dart_minecraft/dart_minecraft.dart';
Examples #
Below are some basic examples of the features included in this library. A better and more extensive example can be found here. However you should always keep in mind that there is a rate limit on all API, set at 600 requests per 10 minutes. You are expected to cache the results and this is not done by the library itself.
Authenticating with Mojang API #
dart_minecraft offers functionality to authenticate with the Mojang API called Yggdrasil.
void main() async {
// This authenticates, invalidates older tokens, and gets a new access
// and client token. Be sure to store them, but keep them safe.
MojangAccount account = authenticate("username", "password");
}
Skin/Cape of a player #
Get the skin and/or cape texture URL of a player. This just requires the player's UUID or username.
void main() async {
// PlayerUUID is a Pair<String, String>
PlayerUuid player = await getUuid('<your username>');
Profile profile = await getProfile(player.second);
String url = profile.textures.getSkinUrl();
}
Reading NBT data #
Read NBT data from a local file. This supports the full NBT specification, however support for SNBT is not implemented yet. A full list of tags/types usable in this context can be found here.
void main() async {
// You can create a NbtFile object from a File object or
// from a String path.
final nbtReader = NbtReader.fromFile('yourfile.nbt');
await nbtReader.read();
NbtCompound rootNode = nbtReader.root;
// You can now read information from your [rootNode].
// for example, rootNode[0] will return the first child,
// if present.
print(rootNode.first);
print(rootNode.getChildrenByTag(NbtTagType.TAG_STRING));
}
Pinging a server #
Pings the Minecraft: Java Edition (1.6+) server at 'mc.hypixel.net'. You can use any DNS or IP Address to ping them. The server will provide basic information, as the player count, ping and MOTD.
void main() async {
/// Pinging a server and getting its basic information is
/// as easy as that.
final server = await ping('mc.hypixel.net');
if (server == null || server.response == null) return;
print('Latency: ${server.ping}');
final players = ping.response!.players;
print('${players.online} / ${players.max}'); // e.g. 5 / 20
}
License #
The MIT License, see LICENSE.