Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yeunikey/anft

NFT в майнкрафте
https://github.com/yeunikey/anft

Last synced: 19 days ago
JSON representation

NFT в майнкрафте

Awesome Lists containing this project

README

        

Документация к ANFT


Плагин для отображения NFT как картину в рамках в Minecraft

Команды

В плагине присутствуют 4 команды: `verify`, `nft`, `anft`, `nftclean`.

verify

`verify` - отвечает за верификацию аккаунта игрока. Состоит из одного параметра `signature`.

Отправляет POST запрос на сервер `ip:port/verify` (`ip:port` настраиваются в конфиге), где в BODY помещается `signature`.

Пример использования

Игрок TRXILBLXXD выполняет команду `/verify 0xe86ac3566919c...`

После которого плагин формирует json:
```json
{
"username": "TRXILBLXXD",
"signature": "0xe86ac3566919c..."
}
```
и отправит запрос серверу выше асинхронно.

Если будет получен ответ без ошибок, то плагин верифицирует аккаунт,
иначе будет получена ошибка (`errors.yml`) по коду из запроса и отправит причину в чат игроку.

nft

`nft` - команда для получения NFT игрока с ника. Не включает в себя дополнительные параметры.

Отправляет GET запрос на сервер `ip:port/nft/` (`ip:port` настраиваются в конфиге).

Пример ответа

```json
{
"isError": false,
"errorId": 0,
"nfts": [
{
"title": "Pacemaker #1062",
"description": "Pacemaker is a membership club for fine digital street art, bringing together collectors and artists. Founded by street culture legend TILL JAGLA & fueled by global fashion & tech platform ABOUT YOU. PFP art by LOOPINGLOVERS.",
"tokenId": "1062",
"imageURL": "https://meta.pacemakernft.xyz/qoDHoN/1062.jpg",
"address": "0xf9adb39ae220b187cbe4943fc9af2c86196dd186"
}
]
}
```

Поле `nfts` содержит массив обьектов со следующими параметрами:
`"title"` - название NFT,
`"description"` - его описание,
`"tokenId"` - tokenId,
`"imageURL"` - ссылка на изображение,
`"address"` - адресс.

Пример использования

Игрок TRXILBLXXD выполняет команду `/nft`.

Плагин отправляет запрос серверу выше и получает ответ. Если ответ будет ошибкой, то отправляет игроку подробности об ошибке (`errors.yml`) полученной по коду.

Если у игрока не будет NFT, то плагин отправит игроку сообщение из конфига в чат.

Если у игрока будет NFT, то плагин построит на их базе настраиваемый в конфиге GUI, где отобразятся все NFT. После которого игрок сможет нажать на них, выбрать его размер и получить как картину.

После запроса данные об количестве и сами NFT кэшируются как `HashedNFT` и `BufferedNFT`, которые сбрасываются через время из конфига.

anft

`anft` - точно такая же команда как `nft`, но вместо никнейма игрока используется адресс. Включает в себя параметр `address`.

Отправляет POST запрос на сервер `ip:port/nft/` (`ip:port` настраиваются в конфиге).

nftclean

`nftclean` - удаляет все NFT из сервера, включая:
- Карты, оставшиеся в инвентарях (очищает метаданные).
- Карты, поставленные как картины.

После выполнения команды начинает процесс удаления всех NFT в режиме очереди.

Права

`verify` - `nft.verify`

`nft` - `nft.nft`

`anft` - `nft.anft`

`nftclean` - `nft.rma`

Группы groups.yml

Нужны они для ограничения NFT на одного игрока. По шаблону плагин генерирует 3 группы: `Обычный`, `Премиум`, `Админ`.

```yaml
groups:
default:
id: 1
name: "Обычный"
limit: 2
default: true
premium:
id: 2
name: "Премиум"
limit: 3
default: false
```

Если у группы `Обычный` будет ограничение NFT на игрока 3, то игрок не сможет взять больше 3 NFT.

Если вы хотите выдать группу `Обычный` определённой группе из LuckPerms (для примера, работает в любом плагине),
то это можно сделать с помощью выдачи прав `nft.group.Обычный`.

Примечание: в названии группы должны соблюдаться все кейсы. Если в плагине название группы ИгРоК, то в правах тоже должен быть ИгРоК

Ошибки errors.yml

Используются в основном при возникании ошибок в запросах.

Включают в себя `id` - идентификатор ошибки и `description` - описание ошибки
```yaml
errors:
success:
id: 0
description: "Всё чётко"
unknown-address:
id: 1
description: "Неверная подпись"
```

Компиляция

Открыть папку с проектом и прописать команду `mvn clean package`