GUI - Внутриигровой сервис удаленного доступа, имеющий в себе модель
и реализацию кастомных предметов, чарований и инвентарей с возможностью
перехвата события о нажатии пользователем на любой слот открытого им инвентаря.
Для использования сервиса необходимо использовать модельный
интерфейс 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));
Конфигурационные данные, на которых базируется запуск сервиса
под имплементаций эндпоинта:
<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
.