Ивенты
PlayerCloneEvent
Время от времени многим разработчикам проектов в Minecraft необходимо записывать в игрока свои параметры и для этого обычно используют player.customData, но вот беда, всё, что Вы запишите в игрока - пропадёт после его возрождения. Чтобы этого избежать, Вам пригодится следующий ивент - mods.sdmcrtplus.events.entity.player.PlayerCloneEvent. У него есть 2 метода.
getOriginal()- позволит получить игрока до его смерти.isWasDeath()- можно проверить умер игрок или зашёл в портал в Эндер мире.
Пример
import crafttweaker.api.events.CTEventManager;
import mods.sdmcrtplus.events.entity.player.PlayerCloneEvent;
CTEventManager.register<mods.sdmcrtplus.events.entity.player.PlayerCloneEvent>((event) => {
var player = event.player;
if(player.level.isClientSide || !event.isWasDeath()) return;
player.updateCustomData(event.getOriginal().customData);
});PlayerChestLootEvent
Когда Вы хотите создать свою RPG сборку, Вам может понадобиться возможность изменить лут в генерируемых сундуках, а для этого пригодится ивент mods.sdmcrtplus.events.entity.player.PlayerChestLootEvent. Он вызывается каждый раз, когда лут в сундуке или любом контейнере с генерируемым лутом заполняется содержимым. Существует 4 метода:
getPos()- позволяет получить координаты, на которых был открыт контейнерgetInventory()- предоставляет возможность получить инвентарь контейнераgetQueriedLootTableId()- разрешает получить ID таблицы, которой заполняется контейнерgetContext()- повзоляет получить условие заполнения контейнера
Пример
ColonyCreatedEvent
Ивент работает только в том случае, когда у Вас установлен MineColonies.
Для одного из наших проектов нужно было сделать следующий функционал - когда колония создавалась, игрок получает сообщение. Для этого можно использовать ивент mods.sdmcrtplus.integration.api.events.colony.ColonyCreatedEvent. Он вызывается всякий раз, когда игрок создаёт колонию.
Пример
FillBiomesFromNoiseEvent
Допустим, Вам хочется сделать сборку про выживание в пустыне, и Вы не можете найти мод на пустыню. Но это совершенно не проблема с данной модификацией. Можете воспользоваться mods.sdmcrtplus.events.level.generation.FillBiomesFromNoiseEvent - он позволяет заменять нежелательные биомы и может даже что-то ещё. Доступны 4 метода:
getBiome()- позволяет получить ID биома в видеResourceLocationsetBiome(biome)- разрешает установить биомgetChunkpos()- даёт возможность получить координаты в чанкеgetPlayer()- можно получить игрока, который генерирует биом
Пример
StructureSpawnEvent
Ох, нет. Я не хочу, чтобы у меня в мире спавнились пирамиды! Что же мне делать? Воспользуюсь-ка ивентом mods.sdmcrtplus.events.level.generation.StructureSpawnEvent, он позволит избавиться от любых структур или заменить их!
У нас есть 7 методов:
getStructure()- позволяет получить структуруsetStructure()- делает возможным изменение структурыgetChunkpos()- разрешает получить координаты структуры в чанкеgetSectionpos()- разрешает полчить координаты структуры в секцииgetStructureManager()- позволяет получить менеджера структурgetLevel()- можно получить мир, в котором создаётся структура@Nullable getPlayer()- предоставляет право получить данные об игроке, который спавнит структуру при генерации чанков
Пример
Last updated