Minecraft 1122 Forge 请帮我编写一段代码功能是获取目前手上的武器蓄力完毕所需的游戏刻比如是钻石剑按照钻石剑的速度获取手上的游戏刻不仅仅是钻石剑
您可以使用以下代码来获取手上武器蓄力完毕所需的游戏刻:
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
@Mod.EventBusSubscriber
public class WeaponChargeTime {
@SubscribeEvent
public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
EntityPlayer player = event.player;
ItemStack heldItem = player.getHeldItemMainhand();
if (heldItem.getItem() instanceof ItemSword) {
ItemSword sword = (ItemSword) heldItem.getItem();
int chargeTime = sword.getMaxItemUseDuration(heldItem) - player.getItemInUseCount();
// 将游戏刻转换为秒
int seconds = chargeTime / 20;
System.out.println("蓄力完毕所需的游戏刻:" + chargeTime);
System.out.println("蓄力完毕所需的秒数:" + seconds);
}
}
}
在这段代码中,我们使用了Forge的事件订阅功能,当玩家进行游戏刻更新时,onPlayerTick方法会被调用。我们获取玩家手中的物品,并检查该物品是否为剑(ItemSword)。然后,我们使用ItemSword的getMaxItemUseDuration方法获取蓄力完毕所需的最大游戏刻数,减去玩家当前使用物品的游戏刻数,从而获得剩余的游戏刻数。最后,我们将游戏刻数转换为秒,并在控制台输出结果。
请注意,这段代码是基于Minecraft 1.12.2 Forge的,您需要在您的mod中正确注册并使用这个事件处理类
原文地址: https://www.cveoy.top/t/topic/iVKD 著作权归作者所有。请勿转载和采集!