commit
e5470b1b33
|
@ -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.minecraft.util.Session;
|
||||
|
@ -223,17 +224,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()) {
|
||||
|
@ -295,6 +297,20 @@ public class Client {
|
|||
featuredServers.add(new ServerDataFeature(server.getName(), server.getIp()));
|
||||
});
|
||||
}
|
||||
ServerList savedServerList = new ServerList(Minecraft.getMinecraft());
|
||||
savedServerList.loadServerList();
|
||||
ArrayList<FeaturedServers.FeaturedServerInfo> 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();
|
||||
|
@ -356,7 +372,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) {
|
||||
|
|
|
@ -247,7 +247,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:
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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<ServerDataFeature> servers) {
|
||||
for (ServerDataFeature server : servers) {
|
||||
if (server.serverIP.equals(ip)) {
|
||||
return server;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static FeaturedServerInfo findByIPFeaturedServerInfo(String ip, ArrayList<FeaturedServerInfo> servers) {
|
||||
for (FeaturedServerInfo server : servers) {
|
||||
if (server.getIp().equals(ip)) {
|
||||
return server;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -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<FeaturedServers.FeaturedServerInfo> 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<FeaturedServers.FeaturedServerInfo> getSavedFeaturedServers() {
|
||||
if(savedFeaturedServers == null) {
|
||||
this.savedFeaturedServers = new ArrayList<>();
|
||||
}
|
||||
return savedFeaturedServers;
|
||||
}
|
||||
|
||||
public void setSavedFeaturedServers(ArrayList<FeaturedServers.FeaturedServerInfo> savedFeaturedServers) {
|
||||
this.savedFeaturedServers = savedFeaturedServers;
|
||||
}
|
||||
|
||||
public void save() {
|
||||
try {
|
||||
FileOutputStream outputStream = new FileOutputStream(Client.getInstance().getGlobalSettingsFile());
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 223 B |
Loading…
Reference in New Issue