Вопрос Как исправить Item Cooldowns?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
180
Реакции
2
Оно всегда пишет 00:00 хотя кд на предмет больше


Код:
Expand Collapse Copy
package dev.arahis.client.module.impl.render;

import dev.arahis.api.event.impl.render.Render2DEvent;
import dev.arahis.api.interfaces.event.Listener;
import dev.arahis.client.module.api.Category;
import dev.arahis.client.module.api.Module;
import dev.arahis.client.module.api.ModuleInfo;
import dev.arahis.impl.font.Font;
import dev.arahis.impl.font.Fonts;
import dev.arahis.impl.util.animation.Animation;
import dev.arahis.impl.util.animation.Easing;
import dev.arahis.impl.util.render.RenderUtil;
import dev.arahis.impl.value.impl.DragValue;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.joml.Vector2d;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@ModuleInfo(name = "Cooldowns", description = "Отображает кд на предметы.", category = Category.RENDER)
public class Cooldowns extends Module {

    public final DragValue position = new DragValue("Position", this, new Vector2d(200, 200));
    private final Animation expandAnimation = new Animation(Easing.EASE_OUT_QUART, 100);
    private final Font interbold14 = Fonts.INTER_BOLD.get(14);
    private final Font interbold12 = Fonts.INTER_BOLD.get(12);
    private final Minecraft mc = Minecraft.getInstance();

    public final Listener<Render2DEvent> onRender2D = event -> {
        List<ItemStack> inventoryItems = mc.player.inventory.mainInventory;
        boolean hasCooldowns = inventoryItems.stream().anyMatch(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()));

        String name = "Item Cooldowns";
        double width = position.size.x = Math.max(40 + interbold14.getWidth(name),
                inventoryItems.stream()
                        .filter(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()))
                        .mapToDouble(itemStack -> interbold12.getWidth(itemStack.getDisplayName().getString()) + interbold12.getWidth(getCooldownTime(itemStack)) + 10)
                        .max()
                        .orElse(40 + interbold14.getWidth(name))
        );

        expandAnimation.run(position.size.y);

        double height = expandAnimation.getValue();
        double x = position.position.x;
        double y = position.position.y;
        if (mc.gameSettings.showDebugInfo) return;

        double expandedHeight = 14;
        position.size.y = expandedHeight;

        RenderUtil.renderClientRect(event.getMatrix(), (float) x, (float) y, (float) width, (float) height, hasCooldowns, expandedHeight);
        interbold14.drawCenter(event.getMatrix(), name, x + width / 2F, y + (expandedHeight / 2F) - (interbold14.getHeight() / 2F), -1);

        if (!hasCooldowns) return;

        Set<Item> procItems = new HashSet<>();
        int ofY = 0;

        for (ItemStack itemStack : inventoryItems) {
            if (mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()) && procItems.add(itemStack.getItem())) {

                interbold12.draw(event.getMatrix(), itemStack.getDisplayName().getString(), x + 5, y + 7 + interbold14.getHeight() + ofY, -1);
                interbold12.drawRight(event.getMatrix(),  getCooldownTime(itemStack), x + width - 5, y + 7 + interbold14.getHeight() + ofY, -1);
                ofY += 5;
                position.size.y = 10 + interbold14.getHeight() + ofY + 2;
            }
        }

    };

    private String getCooldownTime(ItemStack itemStack) {
        int remainingTicks = (int) mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), 1);
        if (remainingTicks <= 0) return "00:00";

        int totalSeconds = remainingTicks / 20;
        int minutes = totalSeconds / 60;
        int seconds = totalSeconds % 60;

        return String.format("%02d:%02d", minutes, seconds);
    }

}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
проверь правильность получения remainingTicks, если я правильно понял то параметр "1" после "itemStack.getItem()" - является partialTicks, то тебе нужно заменить "1", на получение partialTicks. В любом случае, проблема роется в строчке с remainingTicks
 
Оно всегда пишет 00:00 хотя кд на предмет больше


Код:
Expand Collapse Copy
package dev.arahis.client.module.impl.render;

import dev.arahis.api.event.impl.render.Render2DEvent;
import dev.arahis.api.interfaces.event.Listener;
import dev.arahis.client.module.api.Category;
import dev.arahis.client.module.api.Module;
import dev.arahis.client.module.api.ModuleInfo;
import dev.arahis.impl.font.Font;
import dev.arahis.impl.font.Fonts;
import dev.arahis.impl.util.animation.Animation;
import dev.arahis.impl.util.animation.Easing;
import dev.arahis.impl.util.render.RenderUtil;
import dev.arahis.impl.value.impl.DragValue;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.joml.Vector2d;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@ModuleInfo(name = "Cooldowns", description = "Отображает кд на предметы.", category = Category.RENDER)
public class Cooldowns extends Module {

    public final DragValue position = new DragValue("Position", this, new Vector2d(200, 200));
    private final Animation expandAnimation = new Animation(Easing.EASE_OUT_QUART, 100);
    private final Font interbold14 = Fonts.INTER_BOLD.get(14);
    private final Font interbold12 = Fonts.INTER_BOLD.get(12);
    private final Minecraft mc = Minecraft.getInstance();

    public final Listener<Render2DEvent> onRender2D = event -> {
        List<ItemStack> inventoryItems = mc.player.inventory.mainInventory;
        boolean hasCooldowns = inventoryItems.stream().anyMatch(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()));

        String name = "Item Cooldowns";
        double width = position.size.x = Math.max(40 + interbold14.getWidth(name),
                inventoryItems.stream()
                        .filter(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()))
                        .mapToDouble(itemStack -> interbold12.getWidth(itemStack.getDisplayName().getString()) + interbold12.getWidth(getCooldownTime(itemStack)) + 10)
                        .max()
                        .orElse(40 + interbold14.getWidth(name))
        );

        expandAnimation.run(position.size.y);

        double height = expandAnimation.getValue();
        double x = position.position.x;
        double y = position.position.y;
        if (mc.gameSettings.showDebugInfo) return;

        double expandedHeight = 14;
        position.size.y = expandedHeight;

        RenderUtil.renderClientRect(event.getMatrix(), (float) x, (float) y, (float) width, (float) height, hasCooldowns, expandedHeight);
        interbold14.drawCenter(event.getMatrix(), name, x + width / 2F, y + (expandedHeight / 2F) - (interbold14.getHeight() / 2F), -1);

        if (!hasCooldowns) return;

        Set<Item> procItems = new HashSet<>();
        int ofY = 0;

        for (ItemStack itemStack : inventoryItems) {
            if (mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()) && procItems.add(itemStack.getItem())) {

                interbold12.draw(event.getMatrix(), itemStack.getDisplayName().getString(), x + 5, y + 7 + interbold14.getHeight() + ofY, -1);
                interbold12.drawRight(event.getMatrix(),  getCooldownTime(itemStack), x + width - 5, y + 7 + interbold14.getHeight() + ofY, -1);
                ofY += 5;
                position.size.y = 10 + interbold14.getHeight() + ofY + 2;
            }
        }

    };

    private String getCooldownTime(ItemStack itemStack) {
        int remainingTicks = (int) mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), 1);
        if (remainingTicks <= 0) return "00:00";

        int totalSeconds = remainingTicks / 20;
        int minutes = totalSeconds / 60;
        int seconds = totalSeconds % 60;

        return String.format("%02d:%02d", minutes, seconds);
    }

}
Код:
Expand Collapse Copy
package dev.arahis.client.module.impl.render;

import dev.arahis.api.event.impl.render.Render2DEvent;
import dev.arahis.api.interfaces.event.Listener;
import dev.arahis.client.module.api.Category;
import dev.arahis.client.module.api.Module;
import dev.arahis.client.module.api.ModuleInfo;
import dev.arahis.impl.font.Font;
import dev.arahis.impl.font.Fonts;
import dev.arahis.impl.util.animation.Animation;
import dev.arahis.impl.util.animation.Easing;
import dev.arahis.impl.util.render.RenderUtil;
import dev.arahis.impl.value.impl.DragValue;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.joml.Vector2d;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@ModuleInfo(name = "Cooldowns", description = "Отображает кд на предметы.", category = Category.RENDER)
public class Cooldowns extends Module {

    public final DragValue position = new DragValue("Position", this, new Vector2d(200, 200));
    private final Animation expandAnimation = new Animation(Easing.EASE_OUT_QUART, 100);
    private final Font interbold14 = Fonts.INTER_BOLD.get(14);
    private final Font interbold12 = Fonts.INTER_BOLD.get(12);
    private final Minecraft mc = Minecraft.getInstance();

    public final Listener<Render2DEvent> onRender2D = event -> {
        List<ItemStack> inventoryItems = mc.player.inventory.mainInventory;
        Set<Item> procItems = new HashSet<>();
        boolean hasCooldowns = inventoryItems.stream().anyMatch(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()));

        if (mc.gameSettings.showDebugInfo || !hasCooldowns) return;

        String name = "Item Cooldowns";
        double width = position.size.x = Math.max(40 + interbold14.getWidth(name),
                inventoryItems.stream()
                        .filter(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()))
                        .mapToDouble(itemStack -> interbold12.getWidth(itemStack.getDisplayName().getString()) + interbold12.getWidth(getCooldownTime(itemStack)) + 10)
                        .max()
                        .orElse(40 + interbold14.getWidth(name))
        );

        expandAnimation.run(position.size.y);
        double height = expandAnimation.getValue();
        double x = position.position.x;
        double y = position.position.y;

        RenderUtil.renderClientRect(event.getMatrix(), (float) x, (float) y, (float) width, (float) height, true, 14);
        interbold14.drawCenter(event.getMatrix(), name, x + width / 2F, y + 7, -1);

        int ofY = 0;
        for (ItemStack itemStack : inventoryItems) {
            if (mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()) && procItems.add(itemStack.getItem())) {
                String itemName = itemStack.getDisplayName().getString();
                String cooldown = getCooldownTime(itemStack);

                interbold12.draw(event.getMatrix(), itemName, x + 5, y + 21 + ofY, -1);
                interbold12.drawRight(event.getMatrix(), cooldown, x + width - 5, y + 21 + ofY, -1);

                ofY += interbold12.getHeight() + 2;
                position.size.y = 21 + ofY;
            }
        }
    };

    private String getCooldownTime(ItemStack itemStack) {
        int remainingTicks = mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), mc.getRenderPartialTicks());
        if (remainingTicks <= 0) return "00:00";

        int seconds = remainingTicks / 20;
        return String.format("%02d:%02d", seconds / 60, seconds % 60);
    }
}
пробуй арахис
 
Код:
Expand Collapse Copy
package dev.arahis.client.module.impl.render;

import dev.arahis.api.event.impl.render.Render2DEvent;
import dev.arahis.api.interfaces.event.Listener;
import dev.arahis.client.module.api.Category;
import dev.arahis.client.module.api.Module;
import dev.arahis.client.module.api.ModuleInfo;
import dev.arahis.impl.font.Font;
import dev.arahis.impl.font.Fonts;
import dev.arahis.impl.util.animation.Animation;
import dev.arahis.impl.util.animation.Easing;
import dev.arahis.impl.util.render.RenderUtil;
import dev.arahis.impl.value.impl.DragValue;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.joml.Vector2d;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@ModuleInfo(name = "Cooldowns", description = "Отображает кд на предметы.", category = Category.RENDER)
public class Cooldowns extends Module {

    public final DragValue position = new DragValue("Position", this, new Vector2d(200, 200));
    private final Animation expandAnimation = new Animation(Easing.EASE_OUT_QUART, 100);
    private final Font interbold14 = Fonts.INTER_BOLD.get(14);
    private final Font interbold12 = Fonts.INTER_BOLD.get(12);
    private final Minecraft mc = Minecraft.getInstance();

    public final Listener<Render2DEvent> onRender2D = event -> {
        List<ItemStack> inventoryItems = mc.player.inventory.mainInventory;
        Set<Item> procItems = new HashSet<>();
        boolean hasCooldowns = inventoryItems.stream().anyMatch(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()));

        if (mc.gameSettings.showDebugInfo || !hasCooldowns) return;

        String name = "Item Cooldowns";
        double width = position.size.x = Math.max(40 + interbold14.getWidth(name),
                inventoryItems.stream()
                        .filter(itemStack -> mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()))
                        .mapToDouble(itemStack -> interbold12.getWidth(itemStack.getDisplayName().getString()) + interbold12.getWidth(getCooldownTime(itemStack)) + 10)
                        .max()
                        .orElse(40 + interbold14.getWidth(name))
        );

        expandAnimation.run(position.size.y);
        double height = expandAnimation.getValue();
        double x = position.position.x;
        double y = position.position.y;

        RenderUtil.renderClientRect(event.getMatrix(), (float) x, (float) y, (float) width, (float) height, true, 14);
        interbold14.drawCenter(event.getMatrix(), name, x + width / 2F, y + 7, -1);

        int ofY = 0;
        for (ItemStack itemStack : inventoryItems) {
            if (mc.player.getCooldownTracker().hasCooldown(itemStack.getItem()) && procItems.add(itemStack.getItem())) {
                String itemName = itemStack.getDisplayName().getString();
                String cooldown = getCooldownTime(itemStack);

                interbold12.draw(event.getMatrix(), itemName, x + 5, y + 21 + ofY, -1);
                interbold12.drawRight(event.getMatrix(), cooldown, x + width - 5, y + 21 + ofY, -1);

                ofY += interbold12.getHeight() + 2;
                position.size.y = 21 + ofY;
            }
        }
    };

    private String getCooldownTime(ItemStack itemStack) {
        int remainingTicks = mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), mc.getRenderPartialTicks());
        if (remainingTicks <= 0) return "00:00";

        int seconds = remainingTicks / 20;
        return String.format("%02d:%02d", seconds / 60, seconds % 60);
    }
}
пробуй арахис
Всё равно пишет 00:00
 
Назад
Сверху Снизу