dart_minecraft 0.5.1 icon indicating copy to clipboard operation
dart_minecraft: ^0.5.1 copied to clipboard

Utilities for Minecraft and Mojang Web-APIs and reading/writing NBT Files.

dart_minecraft #

Pub Package GitHub Issues GitHub Stars GitHub License

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.

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();

Name history of a player #

Gets a list of all names the player has every taken, including the unix timestamp at which they were changed.

void main() async {
    // PlayerUUID is a Pair<String, String>
    PlayerUuid uuid = await getUuid('<your username>');
    List<Name> history = await getNameHistory(uuid.second);
    history.forEach((name) => print(name.name));

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.

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.

pub points


unverified uploader

Utilities for Minecraft and Mojang Web-APIs and reading/writing NBT Files.

Repository (GitHub)
View/report issues


API reference


Icon for licenses.MIT (LICENSE)


collection, http, path, uuid


Packages that depend on dart_minecraft