Skip to content

Latest commit

 

History

History
75 lines (57 loc) · 2.77 KB

gui-endpoint.md

File metadata and controls

75 lines (57 loc) · 2.77 KB

BridgeNet / Services / GUI

GUI - Внутриигровой сервис удаленного доступа, имеющий в себе модель
и реализацию кастомных предметов, чарований и инвентарей с возможностью
перехвата события о нажатии пользователем на любой слот открытого им инвентаря.


MODEL

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

@Inject
private GuiServiceModel serviceModel;

Создание предметов может происходить как через ItemStack, так
и напрямую через сам сервис путем получения под это отдельного
сервиса, заточенного под управление предметами:

ItemStack item = ItemStack.create()
        .name("It`s a diamond!")
        .material(Materials.DIAMOND);
ItemStack item = serviceModel.getItems().named(Materials.DIAMOND, "It`s a diamond!");

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

GuiDescription description =
        GuiDescription.builder()
                .type(GuiType.CHEST)
                .size(GuiDescription.toSize(5, GuiType.CHEST))
                .title("It`s a chest inventory with 5 rows!")
                .build();

Gui gui = serviceModel.createGui(description);
gui.setItem(GuiSlot.center(description),
        ItemStack.create()
                .name("It`s a diamond!")
                .material(Materials.DIAMOND));

ENDPOINT

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

<service>
    <!-- RMI Protocol service bind port -->
    <bindPort>7001</bindPort>
    <!-- Service direction name -->
    <name>gui</name>
    <!-- Target service class type -->
    <modelPath>me.moonways.bridgenet.model.gui.GuiServiceModel</modelPath>
</service>
  • Реализация эндпоинта лежит в модуле endpoints/gui;
  • Имплементацией основного модельного интерфейса сервиса
    является me.moonways.endpoint.gui.GuiServiceEndpoint;

Данные базовых материалов и чарований находятся в отдельной
директории модуля assembly в формате json - /etc/minecraft_data.