-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Оно всегда пишет 00:00 хотя кд на предмет больше
Код:
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);
}
}