Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Возникает какая-то очень странная ошибка - рука остается в поднятом положении, прошу помочь <3

fun man Ученик (149), на голосовании 3 месяца назад
 package net.mcreator.creategunaddition;

import net.minecraft.world.entity.player.Player;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.mcreator.creategunaddition.init.CreateGunAdditionModItems;

@Mod.EventBusSubscriber(modid = CreateGunAdditionMod.MODID, value = Dist.CLIENT)
public class PlayerTickEventHandler {

@SubscribeEvent
public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
if (event.phase == TickEvent.Phase.START && event.side.isClient()) {
Player player = event.player;
ItemStack mainHandItem = player.getMainHandItem();
if (mainHandItem.getItem() == CreateGunAdditionModItems.BOLT.get()) {
if (player.swingingArm == InteractionHand.MAIN_HAND) {
if (player.swingTime > 0) {
// Остановка анимации использования предмета
player.swingTime = 0;
player.stopUsingItem();
// Сброс состояния атаки
player.resetAttackStrengthTicker();
}
}
}
}
}
}
// неверный код
прошу помочь, буду очень благодарен)
Голосование за лучший ответ
Prg Мудрец (10167) 4 месяца назад
Вот
java
package net.mcreator.creategunaddition;

import net.minecraft.world.entity.player.Player;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.mcreator.creategunaddition.init.CreateGunAdditionModItems;

@Mod.EventBusSubscriber(modid = CreateGunAdditionMod.MODID, value = Dist.CLIENT)
public class PlayerTickEventHandler {

@SubscribeEvent
public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
if (event.phase == TickEvent.Phase.START && event.side.isClient()) {
Player player = event.player;
ItemStack mainHandItem = player.getMainHandItem();
if (mainHandItem.getItem() == CreateGunAdditionModItems.BOLT.get()) {
if (player.swingingArm == InteractionHand.MAIN_HAND) {
if (player.swingTime > 0) {
// Остановка анимации использования предмета
player.swingTime = 0;
player.stopUsingItem();
// Сброс состояния атаки
player.resetAttackStrengthTicker();
// Добавьте следующую строку для сброса анимации руки
player.swingingArm = null;
}
}

}
}
}
}
fun manУченик (149) 4 месяца назад
Ого! спасибо большое, все сработало, я понял, что такой способ в корне неверен, я попробовал переделать его, и тогда у меня получилось!
Похожие вопросы