# NBT Lib

Библиотека для работы с NBT (Named Binary Tag) в отрыве от Minecraft.
## Подключение к проекту
### Maven
Добавляем сторонний репозитарий
```xml
mc-project-repository
https://dmx-mc-project.gitlab.io/maven-repository/
```
Добавляем dependency к себе в проект
```xml
mc-project
nbt-lib
1.0-RC
```
### Gradle
Добавляем сторонний репозитарий
```groovy
repositories {
maven { url 'https://dmx-mc-project.gitlab.io/maven-repository/' }
}
```
Добавляем dependency к себе в проект
```groovy
implementation (group: 'mc-project', name: 'nbt-lib', version: '1.0-RC')
```
## Использование
### Чтение
Для чтения NBT из потока (`InputStream`) используется класс `NbtInputStream`:
```java
NbtInputStream nbtInputStream = new NbtInputStream(inputStream);
Tag tag = nbtInputStream.readTag();
```
Если поток данных предполагается сжатым (GZip), то вторым параметром в конструкторе `NbtInputStream` указываем на это:
```java
NbtInputStream nbtInputStream = new NbtInputStream(inputStream, true);
Tag tag = nbtInputStream.readTag();
```
### Запись
Для записи NBT в поток (`OutputStream`) используется класс `NbtOutputStream`:
```java
NbtOutputStream nbtOutputStream = new NbtOutputStream(outputStream);
nbtOutputStream.writeTag(new TagString("Hello world"));
```
Если необходимо сжатие данных (GZip), то вторым параметром в конструкторе `NbtOutputStream` указываем на это:
```java
NbtOutputStream nbtOutputStream = new NbtOutputStream(outputStream, true);
nbtOutputStream.writeTag(new TagString("Hello world"));
```