Minecraft Шелковое касание

timaxa007

Модератор
5,831
409
672
Эм... Насколько знаю нету эвента для Шёлкового Касания. Используй подходящий эвент и проверяй, какая чарка стоит на предмете у игрока в руке или как-то так.
 
Мне надо разрушить блок и получить его же.
Можно использовать
Код:
world.destroyBlock(x, y, z, true);
но изменить бы как-нибудь выпадающий предмет.
P.S Хочу чтоб работало с плагинами привата
 

timaxa007

Модератор
5,831
409
672
Эвент ломания блока BlockEvent.BreakEvent, на нужных условиях заменяешь (чистишь и добавляешь) дроп, на тот что нужен.
[merge_posts_bbcode]Добавлено: 09.07.2016 01:33:42[/merge_posts_bbcode]

На счёт плагина я не знаю.
[merge_posts_bbcode]Добавлено: 09.07.2016 01:43:12[/merge_posts_bbcode]

Возможно нужно использовать HarvestDropsEvent, а не BreakEvent.
 
timaxa007 написал(а):
Эвент ломания блока BlockEvent.BreakEvent, на нужных условиях заменяешь (чистишь и добавляешь) дроп, на тот что нужен.
Что-то не пойму как сделать это)
Код:
public boolean onItemUse(BlockEvent.BreakEvent be){
int bm = be.blockMetadata; 
bm = metaData;}

А как в кирке реализовали шелковое касание? Где-то должен быть код)
 

timaxa007

Модератор
5,831
409
672
Не в кирке, а в чарах Шёлкового касания и добываемости блока. Если у игрока в руке предмет с чаркой Шёлкового касания и у блока в методе для позволения добывать блок с помощью предмета с Шёлковым касанием.
Ну как-то так. Я полностью не запоминал, какие ещё условия есть.
[merge_posts_bbcode]Добавлено: 09.07.2016 16:31:53[/merge_posts_bbcode]

Примерно так можно:
Код:
@SubscribeEvent
public void bonusHarvestDrops(BlockEvent.HarvestDropsEvent event) {
    if (event.block.canSilkHarvest(event.world, event.harvester, event.x, event.y, event.z, event.blockMetadata)) {
        event.drops.clear();
        event.drops.add(new ItemStack(event.block, 1, event.blockMetadata));
    }
}
 
@SubscribeEvent - обязательно? SubscribeEvent cannot be resolved to a type
Ото блоки теперь не уничтожаются и не дропаются.
 

timaxa007

Модератор
5,831
409
672
Незнайчик написал(а):
@SubscribeEvent - обязательно?
В зависимости от версии Minecraft. Если до 1.7, то @ForgeSubscribe или как-то так. А так-жео бязательно зарегистрировать этот эвент.
 
timaxa007 написал(а):
В зависимости от версии Minecraft. Если до 1.7, то @ForgeSubscribe или как-то так. А так-жео бязательно зарегистрировать этот эвент.
Регистрируется тут?
Код:
public void bonusHarvestDrops(BlockEvent.HarvestDropsEvent event) {
Если да, то я внес эвент в функцию.
 
Сверху