Классы
В моде CraftTwekaer используется язык программирования zenScript, так что знания классов Вам будут очень полезны для написания профессионального рода скриптов!
Создадим класс, который будет отвечать за данные entity
Пример
Также нужно создать конструктор, который позволит динамически создавать класс, который не будет постоянно храниться в памяти. В любой другом ЯП мы бы писали следующим образом - public EntityData(){}
, но в zenScript стоит писать public this(){}
.
Пример
Следует ещё добавить в класс наше существо или же Entity. Необходимо импортировать его так - import crafttweaker.api.entity.Entity;
. Кроме этого, нужно хранить данные или же IData. Импортируем - import crafttweaker.api.data.IData
.
Пример
Теперь нам важно создать метод, который будет проверять, есть ли у существа или же Entity соответствующие данные. Поможет в этом customData, так как в data мы записать ничего не сможем. Ключевое слово in аналогично contains & includes.
Таким образом, у нас есть метод, который позволит проверить, есть ли у игрока нужные нам данные. После этого создадим нужно класс, который сможет записать в игрока новые данные.
Пример
Теперь нас есть всё необходимое. Остаётся только применить данный класс. crafttweaker.api.event.entity.player.ItemPickupEvent
.
Пример
При подборе любого предмета в игрока будут внесены новые данные в customData. Вы можете задаться вопросом, как же мы передали player в наш класс, если в его параметрах Entity? Всё потому, что игрок наследуется от EntityLiving, а он, в свою очередь, от Entity.
Полный код
Last updated