Перейти к содержанию

Zarist

Пользователи
  • Постов

    2
  • Зарегистрирован

  • Посещение

Контакты

  • Логин на сайте
    Zarist

Достижения Zarist

  1. Emotecraft вот какое-то видео, но если ты не владелец сервера то тебе не надо на сервер устанавливать мод (вроде как), в одиночном мире все будет работать и только если на клиенте будет мод, но если ты хочешь что бы анимации видели другие игроки на сервере то на сервере да, должен быть мод, и других людей тоже должен быть мод
  2. Скинь пожалуйста как ты регистрируешь свои предметы. Если ты изначально регистрируешь предмет как зелье, аля что типа этого: public class HardModeItems { public static final RegistryEntry<Potion> TEST_POTION = registerPotion("test_potion", new Potion("test_potion", new StatusEffectInstance(StatusEffects.INSTANT_DAMAGE, 1, 1))); // тут может быть любой эффект private static RegistryEntry<Potion> registerPotion(String name, Potion potion) { return Registry.registerReference(Registries.POTION, Identifier.of(HardMode.MOD_ID, name), potion); // HardMode.MOD_ID это id твоего мода } public static void registerHardModeItems() { HardMode.LOGGER.info("РЕГИСТРАЦИЯ ПРЕДМЕТОВ"); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FOOD_AND_DRINK).register(entries -> { entries.add( PotionContentsComponent.createStack( Items.POTION, HardModeItems.TEST_POTION ) ); }); } } то у тебя уже сразу же после выпивания будет оставаться бутылочка. Если же ты регистрируешь сок как обычный предмет: public class HardModeFood { public record FoodEffect( StatusEffectInstance effect, float chance ) {} public static final Item TEST_DRINK = registerDrink( "test_drink", new FoodEffect(new StatusEffectInstance(StatusEffects.STRENGTH, 600), 0.5F), // последнее число это шанс на срабатывание эфекта new FoodEffect(new StatusEffectInstance(StatusEffects.SPEED, 600), 0.2F) // 1.0F = 100% , 0.5F = 50% ); private static Item registerDrink( String name, FoodEffect... effects ) { Item.Settings settings = new Item.Settings() .registryKey(RegistryKey.of(RegistryKeys.ITEM, Identifier.of(HardMode.MOD_ID, name))) .useRemainder(Items.GLASS_BOTTLE) // это и отвечает за то какой предмет останется после выпивания .maxCount(1) .component(DataComponentTypes.CONSUMABLE, ConsumableComponents.DRINK); if (effects.length > 0) { var builder = ConsumableComponents.drink(); for (FoodEffect effect : effects) { builder.consumeEffect( new ApplyEffectsConsumeEffect( effect.effect(), effect.chance() ) ); } settings.component( DataComponentTypes.CONSUMABLE, // да тут немного повторений кода, но мне лень было, решил на всякий не убирать builder.build() ); } return Registry.register( Registries.ITEM, Identifier.of(HardMode.MOD_ID, name), new Item(settings) ); } public static void registerHardModeFood() { ItemGroupEvents.modifyEntriesEvent(ItemGroups.FOOD_AND_DRINK).register(entries -> { entries.add(TEST_DRINK); }); } } public class HardMode implements ModInitializer { public static final String MOD_ID = "твой_id"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); @Override public void onInitialize() { HardModeFood.registerHardModeFood(); } } то можно указать .useRemainder(Items.GLASS_BOTTLE) и это будет возвращать бутылочку воды после выпивания версия на которой делал я 1 21 11 фабрик, на других скорее всего будет отличаться но там в принципе не должно быть сложно исправить))) сорян за непонятное объяснение)
×
×
  • Создать...