diff --git a/src/main/java/net/mcreator/superbwarfare/item/Monitor.java b/src/main/java/net/mcreator/superbwarfare/item/Monitor.java index 6a7af3921..6bb202c12 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/Monitor.java +++ b/src/main/java/net/mcreator/superbwarfare/item/Monitor.java @@ -4,7 +4,8 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import net.mcreator.superbwarfare.entity.DroneEntity; import net.mcreator.superbwarfare.tools.ItemNBTTool; -import net.mcreator.superbwarfare.tools.TooltipTool; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; @@ -18,7 +19,10 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import java.text.DecimalFormat; import java.util.List; public class Monitor extends Item { @@ -65,28 +69,40 @@ public class Monitor extends Item { } @Override - public Multimap getDefaultAttributeModifiers(EquipmentSlot equipmentSlot) { - if (equipmentSlot == EquipmentSlot.MAINHAND) { + public Multimap getAttributeModifiers(EquipmentSlot slot, ItemStack stack) { + if (slot == EquipmentSlot.MAINHAND) { ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); - builder.putAll(super.getDefaultAttributeModifiers(equipmentSlot)); + builder.putAll(super.getAttributeModifiers(slot, stack)); builder.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_UUID, "Item modifier", 2d, AttributeModifier.Operation.ADDITION)); builder.put(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_UUID, "Item modifier", -2.4, AttributeModifier.Operation.ADDITION)); return builder.build(); } - return super.getDefaultAttributeModifiers(equipmentSlot); + + return super.getAttributeModifiers(slot, stack); } - + @OnlyIn(Dist.CLIENT) @Override public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { - TooltipTool.addMonitorTips(list, stack.getOrCreateTag().getString(LINKED_DRONE)); + if (stack.getOrCreateTag().getString(LINKED_DRONE).equals("none")) return; + + Player player = Minecraft.getInstance().player; + if (player == null) return; + + DroneEntity entity = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) + .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString(LINKED_DRONE))).findFirst().orElse(null); + if (entity == null) return; + + list.add(Component.translatable("des.superbwarfare.tips.distance").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal("Distance:" + new DecimalFormat("##.#").format(player.distanceTo(entity)) + "M").withStyle(ChatFormatting.GRAY))); } @Override public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { super.inventoryTick(itemstack, world, entity, slot, selected); if (!selected) { - itemstack.getOrCreateTag().putBoolean("Using",false); + itemstack.getOrCreateTag().putBoolean("Using", false); DroneEntity drone = entity.level().getEntitiesOfClass(DroneEntity.class, entity.getBoundingBox().inflate(512)) .stream().filter(e -> e.getStringUUID().equals(itemstack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); diff --git a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java index 65e11dc95..a747eaa22 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java @@ -1,18 +1,15 @@ package net.mcreator.superbwarfare.tools; -import net.mcreator.superbwarfare.entity.DroneEntity; import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.perk.AmmoPerk; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.minecraft.ChatFormatting; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.capabilities.ForgeCapabilities; @@ -308,20 +305,4 @@ public class TooltipTool { } - public static void addMonitorTips(List tooltip, String id) { - if (id.equals("none")) return; - - Player player = Minecraft.getInstance().player; - if (player == null) return; - - DroneEntity entity = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(id)).findFirst().orElse(null); - - if (entity == null) return; - - tooltip.add(Component.translatable("des.superbwarfare.tips.distance").withStyle(ChatFormatting.GRAY) - .append(Component.literal("").withStyle(ChatFormatting.RESET)) - .append(Component.literal("Distance:" + new DecimalFormat("##.#").format(player.distanceTo(entity)) + "M").withStyle(ChatFormatting.GRAY))); - } - }