убери просто и все
у меня типы теперь в стаффе не отобржаютсяубери просто и все
ну значит ты что то не так сделалу меня типы теперь в стаффе не отобржаются
оставь только Data с @
huetaприкольни код для стафф листа ss
Посмотреть вложение 274847
Зелёный = спекает
Красный = не спекает
впринципе можете сами поменять, думаю знаете как
а вот вам и картинкаStaffListRenderer:package im.expensive.ui.display.impl; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.command.staffs.StaffStorage; import im.expensive.events.EventDisplay; import im.expensive.events.EventUpdate; import im.expensive.ui.display.ElementRenderer; import im.expensive.ui.display.ElementUpdater; import im.expensive.ui.styles.Style; import im.expensive.utils.drag.Dragging; 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.AllArgsConstructor; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import net.minecraft.client.Minecraft; import net.minecraft.client.network.play.NetworkPlayerInfo; import net.minecraft.scoreboard.ScorePlayerTeam; import net.minecraft.scoreboard.Team; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.GameType; import ru.hogoshi.Animation; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Locale; import java.util.regex.Pattern; @FieldDefaults(level = AccessLevel.PRIVATE) @RequiredArgsConstructor public class StaffListRenderer implements ElementRenderer, ElementUpdater { final Minecraft mc = Minecraft.getInstance(); final Dragging dragging; final ResourceLocation logo = new ResourceLocation("expensive/images/hud/staff.png"); final float iconSize = 10; private final List<Staff> staffPlayers = new ArrayList<>(); private final Pattern namePattern = Pattern.compile("^\\w{3,16}$"); private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|хелп|адм|поддержка|кура|own|taf|curat|dev|supp|yt|сотруд|стаж|stag).[/I]"); private final Animation animation = new Animation(); @Override public void update(EventUpdate e) { staffPlayers.clear(); for (ScorePlayerTeam team : mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList()) { String name = team.getMembershipCollection().toString().replaceAll("[\\[\\]]", ""); boolean vanish = true; for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) { if (info.getGameProfile().getName().equals(name)) { vanish = false; } } if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) { if (!vanish) { if (prefixMatches.matcher(team.getPrefix().getString().toLowerCase(Locale.ROOT)).matches() || StaffStorage.isStaff(name)) { Staff staff = new Staff(team.getPrefix(), name, false); staffPlayers.add(staff); } } if (vanish && !team.getPrefix().getString().isEmpty()) { Staff staff = new Staff(team.getPrefix(), name, true); staffPlayers.add(staff); } } } } float width; float height; @Override public void render(EventDisplay eventDisplay) { float posX = dragging.getX(); float posY = dragging.getY(); float padding = 5; float fontSize = 6.5f; MatrixStack ms = eventDisplay.getMatrixStack(); ITextComponent name = GradientUtil.gradient("Персонал"); Style style = Expensive.getInstance().getStyleManager().getCurrentStyle(); drawStyledRect(posX, posY, width, height, 4); DisplayUtils.drawImage(logo, posX + padding, posY + padding, iconSize, iconSize, ColorUtils.rgb(255, 255, 255)); Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize); posY += fontSize + padding * 2; float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2; float localHeight = fontSize + padding * 2; DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f))); posY += 3.5f; for (Staff f : staffPlayers) { ITextComponent prefix = f.getPrefix(); float prefixWidth = Fonts.sfMedium.getWidth(prefix, fontSize); String staff = (prefix.getString().isEmpty() ? "" : " ") + f.getName(); float nameWidth = Fonts.sfMedium.getWidth(staff, fontSize); float localWidth = prefixWidth + nameWidth + padding * 3; Fonts.sfMedium.drawText(ms, prefix, posX + padding, posY, fontSize, 255); Fonts.sfMedium.drawText(ms, staff, posX + padding + prefixWidth, posY, -1, fontSize); if (f.isVanished()) { DisplayUtils.drawCircle(posX + width - padding - fontSize / 2, posY + fontSize / 2, fontSize / 2 + 2, ColorUtils.rgb(0, 255, 0)); } else { DisplayUtils.drawCircle(posX + width - padding - fontSize / 2, posY + fontSize / 2, fontSize / 2 + 2, ColorUtils.rgb(254, 68, 68)); } if (localWidth > maxWidth) { maxWidth = localWidth; } posY += fontSize + padding; localHeight += fontSize + padding; } width = Math.max(maxWidth, 80); height = localHeight + 2.5f; dragging.setWidth(width); dragging.setHeight(height); } @AllArgsConstructor [USER=54968]@data[/USER] public class Staff { ITextComponent prefix; String name; boolean isVanished; public void updateStatus() { for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) { if (info.getGameProfile().getName().equals(name)) { if (info.getGameType() == GameType.SPECTATOR) { return; } isVanished = false; return; } } isVanished = true; } } private void drawStyledRect(float x, float y, float width, float height, float radius) { int backgroundColor = ColorUtils.rgba(21, 21, 21, 255); DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.getColor(0)); DisplayUtils.drawRoundedRect(x, y, width, height, radius, backgroundColor); } }
Пожалуйста, авторизуйтесь для просмотра ссылки.
удачи(надеюсь у вас не будет проблем с кодом)
их там и нету, если ты на 3.1можешь сделать чтобы при SelfDestruct не было в табе модеров в [V]
package im.expensive.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.Expensive;
import im.expensive.command.staffs.StaffStorage;
import im.expensive.events.EventDisplay;
import im.expensive.events.EventUpdate;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.ui.display.ElementUpdater;
import im.expensive.ui.styles.Style;
import im.expensive.utils.drag.Dragging;
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.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.world.GameType;
import ru.hogoshi.Animation;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class StaffListRenderer implements ElementRenderer, ElementUpdater {
final Minecraft mc = Minecraft.getInstance();
final Dragging dragging;
final ResourceLocation logo = new ResourceLocation("expensive/images/hud/staff.png");
final float iconSize = 10;
private final List<Staff> staffPlayers = new ArrayList<>();
private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|хелп|адм|поддержка|кура|own|taf|curat|dev|supp|yt|сотруд|стаж|stag).[/I]");
private final Animation animation = new Animation();
@Override
public void update(EventUpdate e) {
staffPlayers.clear();
for (ScorePlayerTeam team : mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList()) {
String name = team.getMembershipCollection().toString().replaceAll("[\\[\\]]", "");
boolean vanish = true;
for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) {
if (info.getGameProfile().getName().equals(name)) {
vanish = false;
}
}
if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
if (!vanish) {
if (prefixMatches.matcher(team.getPrefix().getString().toLowerCase(Locale.ROOT)).matches() || StaffStorage.isStaff(name)) {
Staff staff = new Staff(team.getPrefix(), name, false);
staffPlayers.add(staff);
}
}
if (vanish && !team.getPrefix().getString().isEmpty()) {
Staff staff = new Staff(team.getPrefix(), name, true);
staffPlayers.add(staff);
}
}
}
}
float width;
float height;
@Override
public void render(EventDisplay eventDisplay) {
float posX = dragging.getX();
float posY = dragging.getY();
float padding = 5;
float fontSize = 6.5f;
MatrixStack ms = eventDisplay.getMatrixStack();
ITextComponent name = GradientUtil.gradient("Персонал");
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();
drawStyledRect(posX, posY, width, height, 4);
DisplayUtils.drawImage(logo, posX + padding, posY + padding, iconSize, iconSize, ColorUtils.rgb(255, 255, 255));
Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);
posY += fontSize + padding * 2;
float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
float localHeight = fontSize + padding * 2;
DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));
posY += 3.5f;
for (Staff f : staffPlayers) {
ITextComponent prefix = f.getPrefix();
float prefixWidth = Fonts.sfMedium.getWidth(prefix, fontSize);
String staff = (prefix.getString().isEmpty() ? "" : " ") + f.getName();
float nameWidth = Fonts.sfMedium.getWidth(staff, fontSize);
float localWidth = prefixWidth + nameWidth + padding * 3;
Fonts.sfMedium.drawText(ms, prefix, posX + padding, posY, fontSize, 255);
Fonts.sfMedium.drawText(ms, staff, posX + padding + prefixWidth, posY, -1, fontSize);
if (f.isVanished()) {
DisplayUtils.drawCircle(posX + width - padding - fontSize / 2, posY + fontSize / 2, fontSize / 2 + 2, ColorUtils.rgb(0, 255, 0));
} else {
DisplayUtils.drawCircle(posX + width - padding - fontSize / 2, posY + fontSize / 2, fontSize / 2 + 2, ColorUtils.rgb(254, 68, 68));
}
if (localWidth > maxWidth) {
maxWidth = localWidth;
}
posY += fontSize + padding;
localHeight += fontSize + padding;
}
width = Math.max(maxWidth, 80);
height = localHeight + 2.5f;
dragging.setWidth(width);
dragging.setHeight(height);
}
@AllArgsConstructor
//[USER=54968]@data[/USER]
public class Staff {
ITextComponent prefix;
String name;
boolean isVanished;
public void updateStatus() {
for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) {
if (info.getGameProfile().getName().equals(name)) {
if (info.getGameType() == GameType.SPECTATOR) {
return;
}
isVanished = false;
return;
}
}
isVanished = true;
}
public boolean isVanished() {
return false;
}
public ITextComponent getPrefix() {
return null;
}
public String getName() {
return null;
}
}
private void drawStyledRect(float x,
float y,
float width,
float height,
float radius) {
int backgroundColor = ColorUtils.rgba(21, 21, 21, 255);
DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.getColor(0));
DisplayUtils.drawRoundedRect(x, y, width, height, radius, backgroundColor);
}
}
и чё ты пофиксил?) броу проблема в югейме он считает data что я кого то "пингую"fix code
для детей 5 лет чтобы не ебали себе мозги потому что надо научиться юзать ALT+ENTER
Код:package im.expensive.ui.display.impl; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.command.staffs.StaffStorage; import im.expensive.events.EventDisplay; import im.expensive.events.EventUpdate; import im.expensive.ui.display.ElementRenderer; import im.expensive.ui.display.ElementUpdater; import im.expensive.ui.styles.Style; import im.expensive.utils.drag.Dragging; 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.AllArgsConstructor; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import net.minecraft.client.Minecraft; import net.minecraft.client.network.play.NetworkPlayerInfo; import net.minecraft.scoreboard.ScorePlayerTeam; import net.minecraft.scoreboard.Team; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.GameType; import ru.hogoshi.Animation; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Locale; import java.util.regex.Pattern; @FieldDefaults(level = AccessLevel.PRIVATE) @RequiredArgsConstructor public class StaffListRenderer implements ElementRenderer, ElementUpdater { final Minecraft mc = Minecraft.getInstance(); final Dragging dragging; final ResourceLocation logo = new ResourceLocation("expensive/images/hud/staff.png"); final float iconSize = 10; private final List<Staff> staffPlayers = new ArrayList<>(); private final Pattern namePattern = Pattern.compile("^\\w{3,16}$"); private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|хелп|адм|поддержка|кура|own|taf|curat|dev|supp|yt|сотруд|стаж|stag).[/I]"); private final Animation animation = new Animation(); @Override public void update(EventUpdate e) { staffPlayers.clear(); for (ScorePlayerTeam team : mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList()) { String name = team.getMembershipCollection().toString().replaceAll("[\\[\\]]", ""); boolean vanish = true; for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) { if (info.getGameProfile().getName().equals(name)) { vanish = false; } } if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) { if (!vanish) { if (prefixMatches.matcher(team.getPrefix().getString().toLowerCase(Locale.ROOT)).matches() || StaffStorage.isStaff(name)) { Staff staff = new Staff(team.getPrefix(), name, false); staffPlayers.add(staff); } } if (vanish && !team.getPrefix().getString().isEmpty()) { Staff staff = new Staff(team.getPrefix(), name, true); staffPlayers.add(staff); } } } } float width; float height; @Override public void render(EventDisplay eventDisplay) { float posX = dragging.getX(); float posY = dragging.getY(); float padding = 5; float fontSize = 6.5f; MatrixStack ms = eventDisplay.getMatrixStack(); ITextComponent name = GradientUtil.gradient("Персонал"); Style style = Expensive.getInstance().getStyleManager().getCurrentStyle(); drawStyledRect(posX, posY, width, height, 4); DisplayUtils.drawImage(logo, posX + padding, posY + padding, iconSize, iconSize, ColorUtils.rgb(255, 255, 255)); Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize); posY += fontSize + padding * 2; float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2; float localHeight = fontSize + padding * 2; DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f))); posY += 3.5f; for (Staff f : staffPlayers) { ITextComponent prefix = f.getPrefix(); float prefixWidth = Fonts.sfMedium.getWidth(prefix, fontSize); String staff = (prefix.getString().isEmpty() ? "" : " ") + f.getName(); float nameWidth = Fonts.sfMedium.getWidth(staff, fontSize); float localWidth = prefixWidth + nameWidth + padding * 3; Fonts.sfMedium.drawText(ms, prefix, posX + padding, posY, fontSize, 255); Fonts.sfMedium.drawText(ms, staff, posX + padding + prefixWidth, posY, -1, fontSize); if (f.isVanished()) { DisplayUtils.drawCircle(posX + width - padding - fontSize / 2, posY + fontSize / 2, fontSize / 2 + 2, ColorUtils.rgb(0, 255, 0)); } else { DisplayUtils.drawCircle(posX + width - padding - fontSize / 2, posY + fontSize / 2, fontSize / 2 + 2, ColorUtils.rgb(254, 68, 68)); } if (localWidth > maxWidth) { maxWidth = localWidth; } posY += fontSize + padding; localHeight += fontSize + padding; } width = Math.max(maxWidth, 80); height = localHeight + 2.5f; dragging.setWidth(width); dragging.setHeight(height); } @AllArgsConstructor //[USER=54968]@data[/USER] public class Staff { ITextComponent prefix; String name; boolean isVanished; public void updateStatus() { for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) { if (info.getGameProfile().getName().equals(name)) { if (info.getGameType() == GameType.SPECTATOR) { return; } isVanished = false; return; } } isVanished = true; } public boolean isVanished() { return false; } public ITextComponent getPrefix() { return null; } public String getName() { return null; } } private void drawStyledRect(float x, float y, float width, float height, float radius) { int backgroundColor = ColorUtils.rgba(21, 21, 21, 255); DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.getColor(0)); DisplayUtils.drawRoundedRect(x, y, width, height, radius, backgroundColor); } }
да пофиксил) ещё у себя код загрузки имага вырезали чё ты пофиксил?) броу проблема в югейме он считает data что я кого то "пингую"
бля ачо оно крашитдля пастеров пофиксил, жаль что не все смогли на 136 строке поставить Data
еслина 136 строке то оставь там только @ и Data (вместе)бля ачо оно крашит
у мя так и сделаноеслина 136 строке то оставь там только @ и Data (вместе)
---- Minecraft Crash Report ----у мя так и сделано
Гений у тебя из за кфг system крашиту мя так и сделано
---- Minecraft Crash Report ----
// There are four lights!
Time: 30.04.2024, 19:39
Description: Initializing game
java.lang.ClassCastException: class com.google.gson.JsonNull cannot be cast to class com.google.gson.JsonObject (com.google.gson.JsonNull and com.google.gson.JsonObject are in unnamed module of loader 'app')
at im.expensive.config.ConfigStorage.loadConfiguration(ConfigStorage.java:77)
at im.expensive.config.ConfigStorage.setupFolder(ConfigStorage.java:35)
at im.expensive.config.ConfigStorage.init(ConfigStorage.java:28)
at im.expensive.Expensive.clientLoad(Expensive.java:185)
at im.expensive.Expensive.<init>(Expensive.java:147)
at net.minecraft.client.Minecraft.<init>(Minecraft.java:430)
at net.minecraft.client.main.Main.main(Main.java:156)
at Start.main(Start.java:11)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at im.expensive.config.ConfigStorage.loadConfiguration(ConfigStorage.java:77)
at im.expensive.config.ConfigStorage.setupFolder(ConfigStorage.java:35)
at im.expensive.config.ConfigStorage.init(ConfigStorage.java:28)
at im.expensive.Expensive.clientLoad(Expensive.java:185)
at im.expensive.Expensive.<init>(Expensive.java:147)
at net.minecraft.client.Minecraft.<init>(Minecraft.java:430)
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.main.Main.main(Main.java:156)
at Start.main(Start.java:11)
-- System Details --
Details:
Minecraft Version: 1.16.5
Minecraft Version ID: 1.16.5
Operating System: Windows 11 (amd64) version 10.0
Java Version: 17.0.10, Amazon.com Inc.
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Amazon.com Inc.
Memory: 97326384 bytes (92 MB) / 251658240 bytes (240 MB) up to 4265607168 bytes (4068 MB)
CPUs: 12
JVM Flags: 0 total;
Launched Version: mcp
Backend library: LWJGL version 3.2.2 build 10
Backend API: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2 GL version 4.6.0 NVIDIA 552.22, NVIDIA Corporation
GL Caps: Using framebuffer using OpenGL 3.0
Using VBOs: Yes
Is Modded: Very likely; Jar signature invalidated
Type: Client (map_client.txt)
CPU: 12x AMD Ryzen 5 5600 6-Core Processor
OptiFine Version: OptiFine_1.16.5_HD_U_G8
OptiFine Build: ~~NULL~~
Render Distance Chunks: 10
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 4.6.0 NVIDIA 552.22
OpenGlRenderer: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2
OpenGlVendor: NVIDIA Corporation
CpuCount: 12
так я еще вначале поменялГений у тебя из за кфг system крашит
а всо я запастилтак я еще вначале поменял
просто убери загрузку system.cfg(autocfg.cfg)так я еще вначале поменял
а
а всо я запастил
xd, а чё сложного то? сделай икон сайз и поставь drawimage к примеру с моего же стафф листаты ебешь как иконку ебнуть на кейбинды у меня их 2 какого то хуя я хз вроде все норм делал и нихуя
Посмотреть вложение 275874
я так и сделалxd, а чё сложного то? сделай икон сайз и поставь drawimage к примеру с моего же стафф листа
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz