Search in sources :

Example 6 with ShieldItem

use of net.minecraft.item.ShieldItem in project Hypnotic-Client by Hypnotic-Development.

the class Killaura method onMotionUpdate.

@EventTarget
public void onMotionUpdate(EventMotionUpdate event) {
    if (maxAps.getValue() <= minAps.getValue())
        maxAps.setValue(minAps.getValue() + 1);
    if (event.isPre()) {
        try {
            if (mc.world != null) {
                List<LivingEntity> targets = Lists.<LivingEntity>newArrayList();
                for (Entity e : mc.world.getEntities()) {
                    if (e instanceof LivingEntity && e != mc.player && !FriendManager.INSTANCE.isFriend((LivingEntity) e) && mc.player.distanceTo(e) <= range.getValue() && canAttack((LivingEntity) e))
                        targets.add((LivingEntity) e);
                    else {
                        if (targets.contains(e))
                            targets.remove(e);
                    }
                }
                if (target != null && mc.player.distanceTo(target) > range.getValue()) {
                    targets.remove(target);
                    target = null;
                    if (!ModuleManager.INSTANCE.getModule(Scaffold.class).isEnabled()) {
                        RotationUtils.resetPitch();
                        RotationUtils.resetYaw();
                    }
                }
                switch(mode.getSelected()) {
                    case "Sort":
                        switch(sortMode.getSelected()) {
                            case "Distance":
                                targets.sort(Comparator.comparingDouble(entity -> mc.player.distanceTo(entity)));
                                break;
                            case "Health":
                                targets.sort(Comparator.comparingDouble(entity -> ((LivingEntity) entity).getHealth()));
                                break;
                        }
                        if (!targets.isEmpty()) {
                            if (!FriendManager.INSTANCE.isFriend((LivingEntity) targets.get(0)))
                                target = (LivingEntity) targets.get(0);
                            if (mc.player.distanceTo(target) > range.getValue())
                                target = null;
                            if (target != null) {
                                this.setDisplayName("Killaura " + ColorUtils.gray + (target instanceof PlayerEntity ? target.getName().asString().replaceAll(ColorUtils.colorChar, "&") : target.getDisplayName().asString()));
                                if (canAttack(target)) {
                                    RotationUtils.setSilentPitch(RotationUtils.getRotations(target)[1]);
                                    RotationUtils.setSilentYaw(RotationUtils.getRotations(target)[0]);
                                    if (rotation.is("Lock View")) {
                                        mc.player.setYaw(RotationUtils.getRotations(target)[0]);
                                        mc.player.setPitch(RotationUtils.getRotations(target)[1]);
                                    }
                                    long aps = minAps.getValue() < 20 ? new Random().nextInt((int) (maxAps.getValue() - minAps.getValue())) + (int) minAps.getValue() : 20;
                                    if (delay.isEnabled() && random.isEnabled() && mc.player.getAttackCooldownProgress(0.5F) != 1)
                                        attackTimer.reset();
                                    if (delay.isEnabled() ? mc.player.getAttackCooldownProgress(0.5F) == 1 && (random.isEnabled() ? attackTimer.hasTimeElapsed(new Random().nextInt(300 - 100) + 100, true) : true) : attackTimer.hasTimeElapsed((long) (1000L / aps), true)) {
                                        if (autoBlock.isEnabled() && mc.player.getOffHandStack().getItem() instanceof ShieldItem && (mc.player.getMainHandStack().getItem() instanceof ToolItem || mc.player.getMainHandStack().getItem() == Items.AIR || mc.player.getMainHandStack().getItem() instanceof AxeItem || mc.player.getMainHandStack().getItem() instanceof SwordItem) && autoBlockMode.is("Normal")) {
                                            mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, Direction.DOWN));
                                        }
                                        blocking = false;
                                        mc.interactionManager.attackEntity(mc.player, target);
                                        if (swing.isEnabled() && (autoBlock.isEnabled() ? !ModuleManager.INSTANCE.getModule(OldBlock.class).isEnabled() : true) || (ModuleManager.INSTANCE.getModule(OldBlock.class).isEnabled() ? mc.options.getPerspective() != Perspective.FIRST_PERSON : false) && !(mc.player.getMainHandStack().getItem() instanceof SwordItem))
                                            mc.player.swingHand(Hand.MAIN_HAND);
                                        else
                                            mc.player.networkHandler.sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND));
                                        if (swing.isEnabled() && !(mc.player.getMainHandStack().getItem() instanceof SwordItem) || ModuleManager.INSTANCE.getModule(OldBlock.class).animation.is("Swing"))
                                            mc.player.swingHand(Hand.MAIN_HAND);
                                    }
                                }
                                if (target.isDead()) {
                                    RotationUtils.resetYaw();
                                    RotationUtils.resetPitch();
                                }
                            } else {
                                if (blocking)
                                    mc.options.useKey.setPressed(false);
                                blocking = false;
                                if (!ModuleManager.INSTANCE.getModule(Scaffold.class).isEnabled()) {
                                    RotationUtils.resetPitch();
                                    RotationUtils.resetYaw();
                                }
                                this.setDisplayName("Killaura " + ColorUtils.gray + "None");
                            }
                        } else {
                            if (blocking)
                                mc.options.useKey.setPressed(false);
                            blocking = false;
                            if (!ModuleManager.INSTANCE.getModule(Scaffold.class).isEnabled()) {
                                RotationUtils.resetPitch();
                                RotationUtils.resetYaw();
                            }
                        }
                        break;
                    case "Multi":
                        if (!targets.isEmpty()) {
                            for (LivingEntity entity : targets) {
                                if (entity != null && !FriendManager.INSTANCE.isFriend(entity)) {
                                    this.setDisplayName("Killaura " + ColorUtils.gray + (entity instanceof PlayerEntity ? entity.getName().asString().replaceAll(ColorUtils.colorChar, "&") : entity.getDisplayName().asString()));
                                    if (canAttack(entity)) {
                                        if (target != null)
                                            RotationUtils.setSilentPitch(RotationUtils.getRotations(target)[1]);
                                        if (target != null)
                                            RotationUtils.setSilentYaw(RotationUtils.getRotations(target)[0]);
                                        if (rotation.is("Lock View")) {
                                            if (target != null)
                                                mc.player.setYaw(RotationUtils.getRotations(target)[0]);
                                            if (target != null)
                                                mc.player.setPitch(RotationUtils.getRotations(target)[1]);
                                        }
                                        long aps = minAps.getValue() < 20 ? new Random().nextInt((int) (maxAps.getValue() - minAps.getValue())) + (int) minAps.getValue() : 20;
                                        if (delay.isEnabled() && random.isEnabled() && mc.player.getAttackCooldownProgress(0.5F) != 1)
                                            attackTimer.reset();
                                        if ((delay.isEnabled() ? mc.player.getAttackCooldownProgress(0.5F) == 1 && (random.isEnabled() ? attackTimer.hasTimeElapsed(new Random().nextInt(300 - 100) + 100, true) : true) : attackTimer.hasTimeElapsed((long) (1000L / aps), true)) && targets.indexOf(entity) == new Random().nextInt(targets.size())) {
                                            if (autoBlock.isEnabled() && mc.player.getOffHandStack().getItem() instanceof ShieldItem && (mc.player.getMainHandStack().getItem() instanceof ToolItem || mc.player.getMainHandStack().getItem() == Items.AIR || mc.player.getMainHandStack().getItem() instanceof AxeItem || mc.player.getMainHandStack().getItem() instanceof SwordItem) && autoBlockMode.is("NCP")) {
                                                mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, Direction.DOWN));
                                            }
                                            blocking = false;
                                            target = entity;
                                            mc.interactionManager.attackEntity(mc.player, entity);
                                            if (swing.isEnabled() && (autoBlock.isEnabled() ? !ModuleManager.INSTANCE.getModule(OldBlock.class).isEnabled() : true) || (ModuleManager.INSTANCE.getModule(OldBlock.class).isEnabled() ? mc.options.getPerspective() != Perspective.FIRST_PERSON : false) && !(mc.player.getMainHandStack().getItem() instanceof SwordItem))
                                                mc.player.swingHand(Hand.MAIN_HAND);
                                            else
                                                mc.player.networkHandler.sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND));
                                            if (swing.isEnabled() && !(mc.player.getMainHandStack().getItem() instanceof SwordItem) || ModuleManager.INSTANCE.getModule(OldBlock.class).animation.is("Swing"))
                                                mc.player.swingHand(Hand.MAIN_HAND);
                                        }
                                    }
                                    if (entity.isDead()) {
                                        RotationUtils.resetYaw();
                                        RotationUtils.resetPitch();
                                    }
                                } else {
                                }
                            }
                        } else {
                            if (!ModuleManager.INSTANCE.getModule(Scaffold.class).isEnabled()) {
                                RotationUtils.resetPitch();
                                RotationUtils.resetYaw();
                            }
                        }
                        break;
                }
                if (targets.isEmpty())
                    target = null;
                this.setDisplayName("Killaura " + ColorUtils.gray + mode.getSelected());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        if (target == null)
            return;
        if (autoBlock.isEnabled() && (mc.player.getMainHandStack().getItem() instanceof ToolItem || mc.player.getMainHandStack().getItem() == Items.AIR || mc.player.getMainHandStack().getItem() instanceof AxeItem || mc.player.getMainHandStack().getItem() instanceof SwordItem) && !autoBlockMode.is("Visual")) {
            mc.interactionManager.interactItem(mc.player, mc.world, Hand.OFF_HAND);
            mc.interactionManager.interactItem(mc.player, mc.world, Hand.MAIN_HAND);
            if (!blocking && autoBlockMode.is("NCP")) {
                mc.player.networkHandler.sendPacket(new PlayerInteractBlockC2SPacket(Hand.MAIN_HAND, new BlockHitResult(new Vec3d(0.0f, 0.0f, 0.0f), Direction.DOWN, new BlockPos(-1, -1, -1), false)));
                blocking = true;
            }
        }
    }
}
Also used : ColorSetting(dev.hypnotic.settings.settingtypes.ColorSetting) Category(dev.hypnotic.module.Category) PlayerMoveC2SPacketAccessor(dev.hypnotic.mixin.PlayerMoveC2SPacketAccessor) RotationUtils(dev.hypnotic.utils.RotationUtils) PlayerActionC2SPacket(net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket) Random(java.util.Random) FriendManager(dev.hypnotic.config.friends.FriendManager) ModuleManager(dev.hypnotic.module.ModuleManager) Direction(net.minecraft.util.math.Direction) EventMotionUpdate(dev.hypnotic.event.events.EventMotionUpdate) Scaffold(dev.hypnotic.module.player.Scaffold) Lists(com.google.common.collect.Lists) EventTarget(dev.hypnotic.event.EventTarget) PlayerInteractBlockC2SPacket(net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket) Vec3d(net.minecraft.util.math.Vec3d) SwordItem(net.minecraft.item.SwordItem) Hand(net.minecraft.util.Hand) AnimalEntity(net.minecraft.entity.passive.AnimalEntity) NumberSetting(dev.hypnotic.settings.settingtypes.NumberSetting) AxeItem(net.minecraft.item.AxeItem) EventRender3D(dev.hypnotic.event.events.EventRender3D) Entity(net.minecraft.entity.Entity) HandSwingC2SPacket(net.minecraft.network.packet.c2s.play.HandSwingC2SPacket) PassiveEntity(net.minecraft.entity.passive.PassiveEntity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) LivingEntity(net.minecraft.entity.LivingEntity) ArmorStandEntity(net.minecraft.entity.decoration.ArmorStandEntity) ColorUtils(dev.hypnotic.utils.ColorUtils) BlockHitResult(net.minecraft.util.hit.BlockHitResult) BlockPos(net.minecraft.util.math.BlockPos) RenderUtils(dev.hypnotic.utils.render.RenderUtils) Items(net.minecraft.item.Items) OldBlock(dev.hypnotic.module.render.OldBlock) ModeSetting(dev.hypnotic.settings.settingtypes.ModeSetting) HitResult(net.minecraft.util.hit.HitResult) EntityHitResult(net.minecraft.util.hit.EntityHitResult) List(java.util.List) Monster(net.minecraft.entity.mob.Monster) ToolItem(net.minecraft.item.ToolItem) Timer(dev.hypnotic.utils.Timer) Type(net.minecraft.util.hit.HitResult.Type) Mod(dev.hypnotic.module.Mod) PlayerMoveC2SPacket(net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket) Perspective(net.minecraft.client.option.Perspective) Comparator(java.util.Comparator) EventSendPacket(dev.hypnotic.event.events.EventSendPacket) ShieldItem(net.minecraft.item.ShieldItem) BooleanSetting(dev.hypnotic.settings.settingtypes.BooleanSetting) AnimalEntity(net.minecraft.entity.passive.AnimalEntity) Entity(net.minecraft.entity.Entity) PassiveEntity(net.minecraft.entity.passive.PassiveEntity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) LivingEntity(net.minecraft.entity.LivingEntity) ArmorStandEntity(net.minecraft.entity.decoration.ArmorStandEntity) ShieldItem(net.minecraft.item.ShieldItem) PlayerActionC2SPacket(net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket) HandSwingC2SPacket(net.minecraft.network.packet.c2s.play.HandSwingC2SPacket) SwordItem(net.minecraft.item.SwordItem) AxeItem(net.minecraft.item.AxeItem) Vec3d(net.minecraft.util.math.Vec3d) PlayerEntity(net.minecraft.entity.player.PlayerEntity) LivingEntity(net.minecraft.entity.LivingEntity) OldBlock(dev.hypnotic.module.render.OldBlock) Random(java.util.Random) BlockPos(net.minecraft.util.math.BlockPos) BlockHitResult(net.minecraft.util.hit.BlockHitResult) ToolItem(net.minecraft.item.ToolItem) PlayerInteractBlockC2SPacket(net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket) EventTarget(dev.hypnotic.event.EventTarget)

Example 7 with ShieldItem

use of net.minecraft.item.ShieldItem in project LevelZ by Globox1997.

the class ItemStackClientMixin method getTooltipMixin.

@Inject(method = "getTooltip", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/Item;appendTooltip(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/item/TooltipContext;)V"), locals = LocalCapture.CAPTURE_FAILSOFT)
private void getTooltipMixin(@Nullable PlayerEntity player, TooltipContext context, CallbackInfoReturnable<List<Text>> info, List<Text> list, int i) {
    if (player != null) {
        ItemStack stack = (ItemStack) (Object) this;
        ArrayList<Object> levelList = new ArrayList<Object>();
        // Block
        if (stack.getItem() instanceof BlockItem) {
            Block block = ((BlockItem) stack.getItem()).getBlock();
            // Alchemy check
            if (PlayerStatsManager.listContainsItemOrBlock(player, Registry.ITEM.getRawId(stack.getItem()), false)) {
                list.add(new TranslatableText("item.levelz.alchemy.tooltip", PlayerStatsManager.getUnlockLevel(Registry.ITEM.getRawId(stack.getItem()), false)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
            if (block instanceof AnvilBlock) {
                levelList = LevelLists.anvilList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.BEEHIVE) {
                levelList = LevelLists.beehiveList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.BREWING_STAND) {
                levelList = LevelLists.brewingStandList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.ENCHANTING_TABLE) {
                levelList = LevelLists.enchantingTableList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.CAULDRON) {
                levelList = LevelLists.cauldronList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.BARREL) {
                levelList = LevelLists.barrelList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.BLAST_FURNACE) {
                levelList = LevelLists.blastFurnaceList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.CARTOGRAPHY_TABLE) {
                levelList = LevelLists.cartographyList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.COMPOSTER) {
                levelList = LevelLists.composterList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.GRINDSTONE) {
                levelList = LevelLists.grindstoneList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.LECTERN) {
                levelList = LevelLists.lecternList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.LOOM) {
                levelList = LevelLists.loomList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.SMITHING_TABLE) {
                levelList = LevelLists.smithingTableList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.SMOKER) {
                levelList = LevelLists.smokerList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (block == Blocks.STONECUTTER) {
                levelList = LevelLists.stonecutterList;
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } else if (PlayerStatsManager.listContainsItemOrBlock(player, Registry.BLOCK.getRawId(block), true)) {
                list.add(new TranslatableText("item.levelz.mining.tooltip", PlayerStatsManager.getUnlockLevel(Registry.BLOCK.getRawId(block), true)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else // Item
        if (stack.isIn(FabricToolTags.SHEARS)) {
            levelList = LevelLists.sheepList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.isIn(FabricToolTags.PICKAXES) || stack.isIn(FabricToolTags.SHOVELS)) {
            levelList = LevelLists.toolList;
            String material = ((ToolItem) stack.getItem()).getMaterial().toString().toLowerCase();
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, material, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(levelList.indexOf(material) + 1).toString() + ".tooltip", levelList.get(levelList.indexOf(material) + 2).toString()).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.isIn(FabricToolTags.AXES)) {
            levelList = LevelLists.axeList;
            String material = ((ToolItem) stack.getItem()).getMaterial().toString().toLowerCase();
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, material, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(levelList.indexOf(material) + 1).toString() + ".tooltip", levelList.get(levelList.indexOf(material) + 2).toString()).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.isIn(FabricToolTags.HOES)) {
            levelList = LevelLists.hoeList;
            String material = ((ToolItem) stack.getItem()).getMaterial().toString().toLowerCase();
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, material, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(levelList.indexOf(material) + 1).toString() + ".tooltip", levelList.get(levelList.indexOf(material) + 2).toString()).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.isIn(FabricToolTags.SWORDS)) {
            levelList = LevelLists.swordList;
            String material = ((ToolItem) stack.getItem()).getMaterial().toString().toLowerCase();
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, material, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(levelList.indexOf(material) + 1).toString() + ".tooltip", levelList.get(levelList.indexOf(material) + 2).toString()).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() == Items.FLINT_AND_STEEL) {
            levelList = LevelLists.flintAndSteelList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() == Items.GLASS_BOTTLE) {
            levelList = LevelLists.dragonBreathList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
            levelList = LevelLists.totemList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof BowItem) {
            levelList = LevelLists.bowList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof TridentItem) {
            levelList = LevelLists.tridentList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof CrossbowItem) {
            levelList = LevelLists.crossbowList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof ArmorItem) {
            try {
                levelList = LevelLists.armorList;
                String material = ((ArmorItem) stack.getItem()).getMaterial().getName().toLowerCase();
                if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, material, false)) {
                    list.add(new TranslatableText("item.levelz." + levelList.get(levelList.indexOf(material) + 1).toString() + ".tooltip", levelList.get(levelList.indexOf(material) + 2).toString()).formatted(Formatting.GRAY));
                    list.add(new TranslatableText("item.levelz.locked.tooltip"));
                }
            } catch (AbstractMethodError ignored) {
            }
        } else if (stack.getItem() instanceof ShieldItem) {
            levelList = LevelLists.shieldList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof ElytraItem) {
            levelList = LevelLists.elytraList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof BucketItem) {
            levelList = LevelLists.bucketList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (stack.getItem() instanceof FishingRodItem) {
            levelList = LevelLists.fishingList;
            if (!PlayerStatsManager.playerLevelisHighEnough(player, levelList, null, false)) {
                list.add(new TranslatableText("item.levelz." + levelList.get(0) + ".tooltip", levelList.get(1)).formatted(Formatting.GRAY));
                list.add(new TranslatableText("item.levelz.locked.tooltip"));
            }
        } else if (PlayerStatsManager.listContainsItemOrBlock(player, Registry.ITEM.getRawId(stack.getItem()), false)) {
            list.add(new TranslatableText("item.levelz.alchemy.tooltip", PlayerStatsManager.getUnlockLevel(Registry.ITEM.getRawId(stack.getItem()), false)).formatted(Formatting.GRAY));
            list.add(new TranslatableText("item.levelz.locked.tooltip"));
        }
    }
}
Also used : TranslatableText(net.minecraft.text.TranslatableText) ShieldItem(net.minecraft.item.ShieldItem) AnvilBlock(net.minecraft.block.AnvilBlock) ArrayList(java.util.ArrayList) BowItem(net.minecraft.item.BowItem) ElytraItem(net.minecraft.item.ElytraItem) BlockItem(net.minecraft.item.BlockItem) CrossbowItem(net.minecraft.item.CrossbowItem) ArmorItem(net.minecraft.item.ArmorItem) TridentItem(net.minecraft.item.TridentItem) FishingRodItem(net.minecraft.item.FishingRodItem) Block(net.minecraft.block.Block) AnvilBlock(net.minecraft.block.AnvilBlock) BucketItem(net.minecraft.item.BucketItem) ItemStack(net.minecraft.item.ItemStack) ToolItem(net.minecraft.item.ToolItem) Inject(org.spongepowered.asm.mixin.injection.Inject)

Aggregations

ShieldItem (net.minecraft.item.ShieldItem)7 LivingEntity (net.minecraft.entity.LivingEntity)3 AxeItem (net.minecraft.item.AxeItem)2 ItemStack (net.minecraft.item.ItemStack)2 ToolItem (net.minecraft.item.ToolItem)2 ResourceLocation (net.minecraft.util.ResourceLocation)2 Lists (com.google.common.collect.Lists)1 FriendManager (dev.hypnotic.config.friends.FriendManager)1 EventTarget (dev.hypnotic.event.EventTarget)1 EventMotionUpdate (dev.hypnotic.event.events.EventMotionUpdate)1 EventRender3D (dev.hypnotic.event.events.EventRender3D)1 EventSendPacket (dev.hypnotic.event.events.EventSendPacket)1 PlayerMoveC2SPacketAccessor (dev.hypnotic.mixin.PlayerMoveC2SPacketAccessor)1 Category (dev.hypnotic.module.Category)1 Mod (dev.hypnotic.module.Mod)1 ModuleManager (dev.hypnotic.module.ModuleManager)1 Scaffold (dev.hypnotic.module.player.Scaffold)1 OldBlock (dev.hypnotic.module.render.OldBlock)1 BooleanSetting (dev.hypnotic.settings.settingtypes.BooleanSetting)1 ColorSetting (dev.hypnotic.settings.settingtypes.ColorSetting)1