Skip to content

Latest commit

 

History

History
102 lines (75 loc) · 3.56 KB

mojang-endpoint.md

File metadata and controls

102 lines (75 loc) · 3.56 KB

BridgeNet / Services / Mojang

Mojang - Внутренний сервис, делегирующийся и обменивающийся запросами с production REST-эндпоинтами компании Mojang для получения информации об игровых аккаунтах Minecraft.


MODEL

Для использования сервиса необходимо использовать модельный
интерфейс me.moonways.bridgenet.model.mojang.MojangServiceModel:

@Inject
private MojangServiceModel serviceModel;

Данный интерфейс предоставляет возможность получать актуальные
и кешированные данные игровых аккаунтов Minecraft.
Приведем примеры.

Для верификации пользователя как пиратский/лицензионный
мы можем использовать следующий функционал:

boolean isPirate = serviceModel.isPirate("Notch"); // false
boolean isPirate = serviceModel.isPirate("aboba538174"); // true

Для получения актуального идентификатора пользователя по его
ник-нейму мы можем использовать следующий функционал:

Optional<String> idOptional = serviceModel.getMinecraftId("Notch");

if (!idOptional.isPresent()) {
    // user is not exists.
}

Для получения параметров текстур установленного скина на
игровом аккаунте мы можем использовать следующий функционал:

Optional<Skin> skinOptional = serviceModel.getMinecraftSkinByNick("Notch");

if (!skinOptional.isPresent()) {
    // user is not exists.
}

Для получения оригинального никнейма игрового аккаунта
мы можем использовать следующий функционал:

String id = "069a79f4....e38aaf5";
Optional<String> nicknameOptional = serviceModel.getMinecraftNick(id);

if (!nicknameOptional.isPresent()) {
    // user is not exists.
}
String nickname = "nOtCh";
Optional<String> nicknameOptional = serviceModel.getNameWithOriginCase(nickname); // Notch

if (!nicknameOptional.isPresent()) {
    // user is not exists.
}

ENDPOINT

Конфигурационные данные, на которых базируется запуск сервиса
под имплементаций эндпоинта:

<service>
    <!-- RMI Protocol service bind port -->
    <bindPort>7013</bindPort>
    <!-- Service direction name -->
    <name>mojang</name>
    <!-- Target service class type -->
    <modelPath>me.moonways.bridgenet.model.mojang.MojangServiceModel</modelPath>
</service>
  • Реализация эндпоинта лежит в модуле endpoints/mojang;
  • Имплементацией основного модельного интерфейса сервиса
    является me.moonways.endpoint.mojang.MojangServiceEndpoint;
  • Реализация эндпоинта использует REST-запросы, результаты которых сразу кеширует
    на определенное время, и при повторном запросе каких-либо данных преварительно
    пытается найти их в кешированных.