1. Под пивас пойдет, запасщю в свою пастувпрочем тут даже нечего сказать, сс
Посмотреть вложение 274716
и вот вам пинг утилкаWatermarkRenderer:package im.expensive.ui.display.impl; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.events.EventDisplay; import im.expensive.ui.display.ElementRenderer; import im.expensive.ui.styles.Style; import im.expensive.utils.client.PingUtil; import im.expensive.utils.render.ColorUtils; import im.expensive.utils.render.DisplayUtils; import im.expensive.utils.render.font.Fonts; import im.expensive.utils.text.GradientUtil; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; @FieldDefaults(level = AccessLevel.PRIVATE) @RequiredArgsConstructor public class WatermarkRenderer implements ElementRenderer { final Minecraft mc = Minecraft.getInstance(); final ResourceLocation logo = new ResourceLocation("expensive/images/hud/logo.png"); private final ResourceLocation user = new ResourceLocation("expensive/images/hud/user.png"); @Override public void render(EventDisplay eventDisplay) { MatrixStack ms = eventDisplay.getMatrixStack(); float posX = 4; float posY = 4; float padding = 5; float fontSize = 6.5f; float iconSize = 10; Style style = Expensive.getInstance().getStyleManager().getCurrentStyle(); drawStyledRect(posX, posY, iconSize + padding * 2, iconSize + padding * 2, 4); DisplayUtils.drawImage(logo, posX + padding, posY + padding, iconSize, iconSize, ColorUtils.rgb(255, 255, 255)); int fps = mc.getDebugFPS(); int ping = PingUtil.calculatePing(); ITextComponent text = GradientUtil.gradient("паста | Фпс " + fps + " | Пинг " + ping + "мс"); float textWidth = Fonts.sfui.getWidth(text, fontSize); float localPosX = posX + iconSize + padding * 3; drawStyledRect(localPosX, posY, iconSize + padding * 2.5f + textWidth, iconSize + padding * 2, 4); DisplayUtils.drawImage(user, localPosX + padding, posY + padding, iconSize, iconSize, ColorUtils.rgb(255, 255, 255)); Fonts.sfui.drawText(ms, text, localPosX + iconSize + padding * 1.5f - 1, posY + iconSize / 2 + 1.5f, fontSize, 255); } private void drawStyledRect(float x, float y, float width, float height, float radius) { DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.getColor(0)); // outline DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgba(21, 21, 21, 255)); } }
тока ненадо меня убивать пжжпжжпжпжPingUtil:package im.expensive.utils.client; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; public class PingUtil implements IMinecraft { public static String calculateBPS() { return String.format("%.2f", Math.hypot(mc.player.getPosX() - mc.player.prevPosX, mc.player.getPosZ() - mc.player.prevPosZ) * (double) mc.timer.timerSpeed * 20.0D); } public static void drawItemStack(ItemStack stack, float x, float y, boolean withoutOverlay, boolean scale, float scaleValue) { RenderSystem.pushMatrix(); RenderSystem.translatef(x, y, 0); if (scale) GL11.glScaled(scaleValue, scaleValue, scaleValue); mc.getItemRenderer().renderItemAndEffectIntoGUI(stack, 0, 0); if (withoutOverlay) mc.getItemRenderer().renderItemOverlays(mc.fontRenderer, stack, 0, 0); RenderSystem.popMatrix(); } public static int calculatePing() { return mc.player.connection.getPlayerInfo(mc.player.getUniqueID()) != null ? mc.player.connection.getPlayerInfo(mc.player.getUniqueID()).getResponseTime() : 0; } public static String serverIP() { return mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null && !mc.isSingleplayer() ? mc.getCurrentServerData().serverIP : ""; } }
думаю тута всё понятно вам так что дерзайте, и не надо говном обмазываться
2. Немного изменить и будет