From 716841c7f4829ac8d21e45105012a14e065b91fd Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Mon, 15 Jan 2024 19:28:24 +0600 Subject: [PATCH 1/7] Update ComboCounterMod.java --- .../java/net/silentclient/client/mods/hud/ComboCounterMod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/silentclient/client/mods/hud/ComboCounterMod.java b/src/main/java/net/silentclient/client/mods/hud/ComboCounterMod.java index 8f5a040..63b4705 100644 --- a/src/main/java/net/silentclient/client/mods/hud/ComboCounterMod.java +++ b/src/main/java/net/silentclient/client/mods/hud/ComboCounterMod.java @@ -50,7 +50,7 @@ public class ComboCounterMod extends HudMod { if(combo == 0) { return "No " + getPostText(); } else { - return combo + getPostText(); + return combo + " " + getPostText(); } } From 94f1f4d3c33521dcb2556e883a9ab34e5733c2ae Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Thu, 1 Feb 2024 00:34:47 +0600 Subject: [PATCH 2/7] (small) changed url in featured servers --- .../java/net/silentclient/client/utils/FeaturedServers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/silentclient/client/utils/FeaturedServers.java b/src/main/java/net/silentclient/client/utils/FeaturedServers.java index 86317f0..d800bdd 100644 --- a/src/main/java/net/silentclient/client/utils/FeaturedServers.java +++ b/src/main/java/net/silentclient/client/utils/FeaturedServers.java @@ -10,7 +10,7 @@ import java.util.ArrayList; public class FeaturedServers { public static ArrayList get() { try { - String content = Requests.get("https://assets.silentclient.net/client/servers.json"); + String content = Requests.get("https://api.silentclient.net/_next/servers"); GsonBuilder builder = new GsonBuilder(); Gson gson = builder.create(); From f03286bdd01e4d392a2f81e53489db88ec234f33 Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Thu, 1 Feb 2024 00:35:39 +0600 Subject: [PATCH 3/7] (fix) deleting server with featured servers --- .../client/gui/multiplayer/SilentMultiplayerGui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java b/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java index ae1964c..9c13c64 100644 --- a/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java +++ b/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java @@ -231,7 +231,7 @@ public class SilentMultiplayerGui extends SilentScreen { break; case 2: if(this.selectedServer != -1) { - this.savedServerList.removeServerData(this.selectedServer); + this.savedServerList.removeServerData(this.selectedServer - Client.getInstance().getFeaturedServers().size()); this.savedServerList.saveServerList(); this.selectServer(-1); this.refreshServerList(); From b22201a1a203a354d25d078001c5e044e32b1a6d Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Fri, 9 Feb 2024 22:52:01 +0600 Subject: [PATCH 4/7] (fix) custom skins --- .../client/mixin/mixins/AbstractClientPlayerMixin.java | 2 +- .../net/silentclient/client/utils/types/PlayerResponse.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java b/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java index 5358059..bf2231c 100644 --- a/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java +++ b/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java @@ -112,7 +112,7 @@ public abstract class AbstractClientPlayerMixin implements AbstractClientPlayerE (new Thread("CustomSkinThread") { public void run() { Client.logger.info(String.format("Downloading Custom Skin (%s)", silent$nameClear)); - customSkin.setImage(SCTextureManager.getImage("https://cdn.silentclient.net/skins/" + silent$nameClear.toLowerCase() + ".png")); + customSkin.setImage(SCTextureManager.getImage("https://cdn-test.silentclient.net/file/silentclient/" + silent$account.getCustomSkinPath())); CustomSkin.loading = false; customSkin.setLoaded(true); Client.logger.info(String.format("Custom Skin downloaded! (%s)", silent$nameClear)); diff --git a/src/main/java/net/silentclient/client/utils/types/PlayerResponse.java b/src/main/java/net/silentclient/client/utils/types/PlayerResponse.java index cbcf8a4..5488250 100644 --- a/src/main/java/net/silentclient/client/utils/types/PlayerResponse.java +++ b/src/main/java/net/silentclient/client/utils/types/PlayerResponse.java @@ -66,6 +66,7 @@ public class PlayerResponse extends AbstractReply { public int is_jr_admin; public int is_tester_manager; public BigInteger discord_id; + public String custom_skin_path; public int getPlusExpiration() { if(plus_expiration != null) { @@ -428,6 +429,10 @@ public class PlayerResponse extends AbstractReply { } + public String getCustomSkinPath() { + return custom_skin_path; + } + public Cosmetics getCosmetics() { return cosmetics; } From 3d8f3b72a2cdd8b757dafa4a8881644f07660cc7 Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Fri, 16 Feb 2024 22:47:37 +0600 Subject: [PATCH 5/7] (fix) edit servers with featured --- .../client/gui/multiplayer/SilentMultiplayerGui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java b/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java index 9c13c64..cff6a41 100644 --- a/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java +++ b/src/main/java/net/silentclient/client/gui/multiplayer/SilentMultiplayerGui.java @@ -246,7 +246,7 @@ public class SilentMultiplayerGui extends SilentScreen { case 7: ServerComponent serverComponent = this.servers.get(selectedServer); if(serverComponent != null && serverComponent.getServer() != null) { - mc.displayGuiScreen(new AddServerGui(this, serverComponent.getServer(), true, selectedServer)); + mc.displayGuiScreen(new AddServerGui(this, serverComponent.getServer(), true, selectedServer - Client.getInstance().getFeaturedServers().size())); } break; case 8: From 341211208b0b6c2e70b71e7cc8484ffbe038b284 Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Fri, 16 Feb 2024 23:04:53 +0600 Subject: [PATCH 6/7] (feature) save featured servers --- .../java/net/silentclient/client/Client.java | 28 +++++++++++++++---- .../components/ServerComponent.java | 26 +++++++++++++---- .../client/utils/FeaturedServers.java | 26 ++++++++++++++++- .../client/utils/types/GlobalSettings.java | 18 ++++++++++++ 4 files changed, 85 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/silentclient/client/Client.java b/src/main/java/net/silentclient/client/Client.java index d40dbbe..04f7bcb 100644 --- a/src/main/java/net/silentclient/client/Client.java +++ b/src/main/java/net/silentclient/client/Client.java @@ -6,6 +6,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.client.multiplayer.ServerList; import net.minecraft.client.resources.data.IMetadataSerializer; import net.minecraft.util.ResourceLocation; import net.silentclient.client.config.ConfigManager; @@ -216,17 +217,18 @@ public class Client { content.append(inputLine); } - globalSettings.setConfig(new JSONObject(content.toString()).getString("config")); - globalSettings.setLite(new JSONObject(content.toString()).getBoolean("lite")); - globalSettings.setDisplayedTutorial(new JSONObject(content.toString()).getBoolean("displayedTutorial")); - globalSettings.setConfigsMigrated(new JSONObject(content.toString()).getBoolean("configsMigrated")); - globalSettings.setPacksPanoramaEnabled(new JSONObject(content.toString()).getBoolean("packsPanoramaEnabled")); + globalSettings = gson.fromJson(content.toString(), GlobalSettings.class); + Client.getInstance().updateWindowTitle(); in.close(); } catch (Exception err) { Client.logger.catching(err); } + if(globalSettings == null) { + globalSettings = new GlobalSettings(); + } + globalSettings.save(); Client.getInstance().updateWindowTitle(); if(!globalSettings.configsMigrated && new File(Minecraft.getMinecraft().mcDataDir, "SilentClient").exists() && new File(Minecraft.getMinecraft().mcDataDir, "SilentClient").isDirectory()) { @@ -286,6 +288,20 @@ public class Client { featuredServers.add(new ServerDataFeature(server.getName(), server.getIp())); }); } + ServerList savedServerList = new ServerList(Minecraft.getMinecraft()); + savedServerList.loadServerList(); + ArrayList newSavedFeaturedServers = new ArrayList<>(globalSettings.getSavedFeaturedServers()); + globalSettings.getSavedFeaturedServers().forEach((savedServer) -> { + if(FeaturedServers.findByIPServerDataFeature(savedServer.getIp(), featuredServers) == null) { + Client.logger.info("adding saved featured server to server list: " + savedServer.getIp()); + savedServerList.addServerData(new ServerData(savedServer.getName(), savedServer.getIp(), false)); + newSavedFeaturedServers.remove(savedServer); + } + }); + globalSettings.setSavedFeaturedServers(newSavedFeaturedServers); + globalSettings.save(); + + savedServerList.saveServerList(); logger.info("STARTING > friends"); this.updateFriendsList(); @@ -347,7 +363,7 @@ public class Client { Client.logger.info("STARTING > config-manager-post-init"); configManager.postInit(); - if(!globalSettings.displayedTutorial) { + if(!globalSettings.isDisplayedTutorial()) { Minecraft.getMinecraft().displayGuiScreen(new UserTutorial()); } } catch(Exception err) { diff --git a/src/main/java/net/silentclient/client/gui/multiplayer/components/ServerComponent.java b/src/main/java/net/silentclient/client/gui/multiplayer/components/ServerComponent.java index cbd52ef..ec69cd1 100644 --- a/src/main/java/net/silentclient/client/gui/multiplayer/components/ServerComponent.java +++ b/src/main/java/net/silentclient/client/gui/multiplayer/components/ServerComponent.java @@ -22,6 +22,7 @@ import net.silentclient.client.gui.lite.clickgui.utils.MouseUtils; import net.silentclient.client.gui.multiplayer.SilentMultiplayerGui; import net.silentclient.client.gui.theme.Theme; import net.silentclient.client.gui.util.RenderUtil; +import net.silentclient.client.utils.FeaturedServers; import net.silentclient.client.utils.MouseCursorHandler; import org.apache.commons.lang3.Validate; @@ -56,6 +57,7 @@ public class ServerComponent { public MouseCursorHandler.CursorType draw(int serverIndex, int mouseX, int mouseY, float x, float y, boolean isSelected) { MouseCursorHandler.CursorType cursorType = null; boolean featured = this.server instanceof ServerDataFeature; + boolean unsaved = featured && FeaturedServers.findByIPFeaturedServerInfo(this.server.serverIP, Client.getInstance().getGlobalSettings().getSavedFeaturedServers()) == null; if (!this.server.field_78841_f) { this.server.field_78841_f = true; @@ -122,7 +124,7 @@ public class ServerComponent { boolean flag2 = flag || flag1; String s2 = flag2 ? EnumChatFormatting.DARK_RED + this.server.gameVersion : this.server.populationInfo; int j = this.mc.fontRendererObj.getStringWidth(s2); - this.mc.fontRendererObj.drawString(s2, (int) x + 240 - j - 15 - 2 - (featured ? 10 : 0), (int) y + 3, -1); + this.mc.fontRendererObj.drawString(s2, (int) x + 240 - j - 15 - 2 - (featured ? 10 : 0) - (unsaved ? 10 : 0), (int) y + 3, -1); int k = 0; String s = null; int l; @@ -186,12 +188,17 @@ public class ServerComponent { GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(Gui.icons); - Gui.drawModalRectWithCustomSizedTexture((int) x + 240 - 15 - (featured ? 10 : 0), (int) y + 2, (float)(k * 10), (float)(176 + l * 8), 10, 8, 256.0F, 256.0F); - Tooltip.render(mouseX, mouseY, x + 240 - 15 - (featured ? 10 : 0), y + 2, 10, 8, s1); + Gui.drawModalRectWithCustomSizedTexture((int) x + 240 - 15 - (featured ? 10 : 0) - (unsaved ? 10 : 0), (int) y + 2, (float)(k * 10), (float)(176 + l * 8), 10, 8, 256.0F, 256.0F); + Tooltip.render(mouseX, mouseY, x + 240 - 15 - (featured ? 10 : 0) - (unsaved ? 10 : 0), y + 2, 10, 8, s1); - if(this.server instanceof ServerDataFeature) { - RenderUtil.drawImage(new ResourceLocation("silentclient/icons/star.png"), x + 240 - 13, y + 2, 8, 8); - Tooltip.render(mouseX, mouseY, x + 240 - 13, y + 2, 8, 8, "Featured Server"); + if(featured) { + RenderUtil.drawImage(new ResourceLocation("silentclient/icons/star.png"), x + 240 - 13 - (unsaved ? 10 : 0), y + 2, 8, 8); + Tooltip.render(mouseX, mouseY, x + 240 - 13 - (unsaved ? 10 : 0), y + 2, 8, 8, "Featured Server"); + + if(unsaved) { + RenderUtil.drawImage(new ResourceLocation("silentclient/icons/save-icon.png"), x + 240 - 13, y + 2, 8, 8); + Tooltip.render(mouseX, mouseY, x + 240 - 13, y + 2, 8, 8, "Save Server"); + } } return cursorType; @@ -213,6 +220,13 @@ public class ServerComponent { return isHovered; } } + if(this.server instanceof ServerDataFeature) { + if(FeaturedServers.findByIPFeaturedServerInfo(this.server.serverIP, Client.getInstance().getGlobalSettings().getSavedFeaturedServers()) == null && MouseUtils.isInside(mouseX, mouseY, x + 240 - 13, y + 2, 8, 8)) { + Client.getInstance().getGlobalSettings().getSavedFeaturedServers().add(new FeaturedServers.FeaturedServerInfo(this.server.serverName, this.server.serverIP)); + Client.getInstance().getGlobalSettings().save(); + return isHovered; + } + } if(!isSelected) { this.owner.selectServer(serverIndex); } else { diff --git a/src/main/java/net/silentclient/client/utils/FeaturedServers.java b/src/main/java/net/silentclient/client/utils/FeaturedServers.java index d800bdd..07d02c6 100644 --- a/src/main/java/net/silentclient/client/utils/FeaturedServers.java +++ b/src/main/java/net/silentclient/client/utils/FeaturedServers.java @@ -3,6 +3,7 @@ package net.silentclient.client.utils; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import net.silentclient.client.ServerDataFeature; import java.lang.reflect.Type; import java.util.ArrayList; @@ -22,10 +23,15 @@ public class FeaturedServers { } } - public class FeaturedServerInfo { + public static class FeaturedServerInfo { public String name; public String ip; + public FeaturedServerInfo(String name, String ip) { + this.name = name; + this.ip = ip; + } + public String getName() { return name; } @@ -34,4 +40,22 @@ public class FeaturedServers { return ip; } } + + public static ServerDataFeature findByIPServerDataFeature(String ip, ArrayList servers) { + for (ServerDataFeature server : servers) { + if (server.serverIP.equals(ip)) { + return server; + } + } + return null; + } + + public static FeaturedServerInfo findByIPFeaturedServerInfo(String ip, ArrayList servers) { + for (FeaturedServerInfo server : servers) { + if (server.getIp().equals(ip)) { + return server; + } + } + return null; + } } \ No newline at end of file diff --git a/src/main/java/net/silentclient/client/utils/types/GlobalSettings.java b/src/main/java/net/silentclient/client/utils/types/GlobalSettings.java index d8dbe15..85a2ffa 100644 --- a/src/main/java/net/silentclient/client/utils/types/GlobalSettings.java +++ b/src/main/java/net/silentclient/client/utils/types/GlobalSettings.java @@ -1,8 +1,10 @@ package net.silentclient.client.utils.types; import net.silentclient.client.Client; +import net.silentclient.client.utils.FeaturedServers; import java.io.FileOutputStream; +import java.util.ArrayList; public class GlobalSettings { public String config; @@ -10,15 +12,20 @@ public class GlobalSettings { public boolean displayedTutorial; public boolean configsMigrated; public boolean packsPanoramaEnabled; + public ArrayList savedFeaturedServers; public GlobalSettings() { this.config = "Default.txt"; this.lite = false; this.displayedTutorial = false; this.packsPanoramaEnabled = true; + this.savedFeaturedServers = new ArrayList<>(); } public String getConfig() { + if(config == null) { + config = "Default.txt"; + } return config; } @@ -55,6 +62,17 @@ public class GlobalSettings { this.packsPanoramaEnabled = packsPanoramaEnabled; } + public ArrayList getSavedFeaturedServers() { + if(savedFeaturedServers == null) { + this.savedFeaturedServers = new ArrayList<>(); + } + return savedFeaturedServers; + } + + public void setSavedFeaturedServers(ArrayList savedFeaturedServers) { + this.savedFeaturedServers = savedFeaturedServers; + } + public void save() { try { FileOutputStream outputStream = new FileOutputStream(Client.getInstance().getGlobalSettingsFile()); From 4b6ab97fee677f8d38af6e7f97a9bb51b0cd98a7 Mon Sep 17 00:00:00 2001 From: kirillsaint Date: Fri, 16 Feb 2024 23:11:32 +0600 Subject: [PATCH 7/7] Create save-icon.png --- .../minecraft/silentclient/icons/save-icon.png | Bin 0 -> 223 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/minecraft/silentclient/icons/save-icon.png diff --git a/src/main/resources/assets/minecraft/silentclient/icons/save-icon.png b/src/main/resources/assets/minecraft/silentclient/icons/save-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0526dd1e64457c9eed0ff3a45aac5e39290931c4 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^${@_a1|;QfZjJ;}jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!4gjw$B+p3x7SW{H7E$UCBFT8f2UBI;#J4g zoN~JfH%;w*;$Bs1C!1y++i+g6bo#Xo@!n ?jz2{t>FVdQ I&MBb@0I`!$1ONa4 literal 0 HcmV?d00001