diff options
15 files changed, 54 insertions, 54 deletions
| diff --git a/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java b/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java index 145f7ec4..2475d0d3 100644 --- a/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java +++ b/src/main/java/de/hysky/skyblocker/compatibility/MixinPlugin.java @@ -30,14 +30,14 @@ public class MixinPlugin implements IMixinConfigPlugin {  	public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {  		//OptiFabric Compatibility  		if (mixinClassName.endsWith("WorldRendererMixin") && OPTIFABRIC_LOADED) return false; -		 +  		//YACL#103 Patch  		if (mixinClassName.endsWith("DoubleFieldControllerMixin") || mixinClassName.endsWith("FloatFieldControllerMixin") || mixinClassName.endsWith("IntegerFieldControllerMixin") || mixinClassName.endsWith("LongFieldControllerMixin") || mixinClassName.endsWith("NumberFieldControllerMixin")) {  			if (YACL_VERSION.equals("3.2.1+1.20.2")) {  				LOGGER.info("[Skyblocker] Applying patch for " + targetClassName + " from " + mixinClassName);  			} else {  				LOGGER.info("[Skyblocker] Skipping patch on " + targetClassName + " due to an Unknown YACL version being found! Version: {}", YACL_VERSION); -				 +  				return false;  			}  		} diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index 8119fcab..b5cf2905 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -623,7 +623,7 @@ public class SkyblockerConfig {  		@SerialEntry  		public boolean enableAotvWaypoints = true; -		 +  		@SerialEntry  		public boolean enablePearlWaypoints = true; @@ -734,7 +734,7 @@ public class SkyblockerConfig {  		@SerialEntry  		public boolean enigmaSoulWaypoints = false; -		 +  		@SerialEntry  		public boolean highlightFoundEnigmaSouls = true; diff --git a/src/main/java/de/hysky/skyblocker/mixin/yacl/FloatFieldControllerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/yacl/FloatFieldControllerMixin.java index d67993c2..3a82c92a 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/yacl/FloatFieldControllerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/yacl/FloatFieldControllerMixin.java @@ -15,7 +15,7 @@ import net.minecraft.text.Text;  public abstract class FloatFieldControllerMixin extends NumberFieldController<Float> {  	private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(); -	 +  	public FloatFieldControllerMixin(Option<Float> option, Function<Float, Text> displayFormatter) {  		super(option, displayFormatter);  	} diff --git a/src/main/java/de/hysky/skyblocker/mixin/yacl/IntegerFieldControllerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/yacl/IntegerFieldControllerMixin.java index b95cbef7..51dd4890 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/yacl/IntegerFieldControllerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/yacl/IntegerFieldControllerMixin.java @@ -14,16 +14,16 @@ import net.minecraft.text.Text;  @Mixin(value = IntegerFieldController.class, remap = false)  public abstract class IntegerFieldControllerMixin extends NumberFieldController<Integer> {  	private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(); -	 +  	public IntegerFieldControllerMixin(Option<Integer> option, Function<Integer, Text> displayFormatter) {  		super(option, displayFormatter);  	} -	 +  	@Overwrite  	public String getString() {  		return NUMBER_FORMAT.format(option().pendingValue());  	} -	 +  	@Overwrite  	public boolean isInputValid(String input) {  		return super.isInputValid(input); diff --git a/src/main/java/de/hysky/skyblocker/mixin/yacl/LongFieldControllerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/yacl/LongFieldControllerMixin.java index 99871e2e..f744c310 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/yacl/LongFieldControllerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/yacl/LongFieldControllerMixin.java @@ -14,16 +14,16 @@ import net.minecraft.text.Text;  @Mixin(value = LongFieldController.class, remap = false)  public abstract class LongFieldControllerMixin extends NumberFieldController<Long> {  	private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(); -	 +  	public LongFieldControllerMixin(Option<Long> option, Function<Long, Text> displayFormatter) {  		super(option, displayFormatter);  	} -	 +  	@Overwrite  	public String getString() {  		return NUMBER_FORMAT.format(option().pendingValue());  	} -	 +  	@Overwrite  	public boolean isInputValid(String input) {  		return super.isInputValid(input); diff --git a/src/main/java/de/hysky/skyblocker/mixin/yacl/NumberFieldControllerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/yacl/NumberFieldControllerMixin.java index 17a99cfd..010f9a26 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/yacl/NumberFieldControllerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/yacl/NumberFieldControllerMixin.java @@ -17,7 +17,7 @@ import net.minecraft.util.math.MathHelper;  public abstract class NumberFieldControllerMixin<T extends Number> implements ISliderController<T> {  	private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance();  	private static final DecimalFormatSymbols DECIMAL_FORMAT_SYMBOLS = DecimalFormatSymbols.getInstance(); -	 +  	@Overwrite  	public void setFromString(String value) {  		try { @@ -26,16 +26,16 @@ public abstract class NumberFieldControllerMixin<T extends Number> implements IS  			YACLConstants.LOGGER.warn("Failed to parse number: {}", value);  		}  	} -	 +  	@Overwrite  	public boolean isInputValid(String input) {  		input = input.replace(DECIMAL_FORMAT_SYMBOLS.getGroupingSeparator() + "", "");  		ParsePosition parsePosition = new ParsePosition(0);  		NUMBER_FORMAT.parse(input, parsePosition); -		 +  		return parsePosition.getIndex() == input.length();  	} -	 +  	@Overwrite  	protected String cleanupNumberString(String number) {  		throw new UnsupportedOperationException("This method should no longer be called."); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java index c198238b..02b08254 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java @@ -57,7 +57,7 @@ public class DungeonMapConfigScreen extends Screen {  		SkyblockerConfigManager.get().locations.dungeons.mapX = hudX;  		SkyblockerConfigManager.get().locations.dungeons.mapY = hudY;  		SkyblockerConfigManager.save(); -		 +  		this.client.setScreen(parent);  	}  } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java index 09cb03be..6f281ba9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java @@ -62,7 +62,7 @@ public class DwarvenHudConfigScreen extends Screen {          SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x = hudX;          SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y = hudY;          SkyblockerConfigManager.save(); -         +          client.setScreen(parent);      }  } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java index cec84b38..3434f026 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java @@ -145,7 +145,7 @@ public class CustomArmorTrims {  				Identifier.CODEC.fieldOf("material").forGetter(ArmorTrimId::material),  				Identifier.CODEC.fieldOf("pattern").forGetter(ArmorTrimId::pattern))  				.apply(instance, ArmorTrimId::new)); -		 +  		@Override  		public Identifier left() {  			return material(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java b/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java index ac9b1bf0..5873ee28 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java @@ -40,18 +40,18 @@ public class MuseumItemCache {  	private static final Path CACHE_FILE = SkyblockerMod.CONFIG_DIR.resolve("museum_item_cache.json");  	private static final Object2ObjectOpenHashMap<String, Object2ObjectOpenHashMap<String, ProfileMuseumData>> MUSEUM_ITEM_CACHE = new Object2ObjectOpenHashMap<>();  	private static final Type MAP_TYPE = new TypeToken<Object2ObjectOpenHashMap<String, Object2ObjectOpenHashMap<String, ProfileMuseumData>>>() {}.getType(); -	 +  	private static CompletableFuture<Void> loaded;  	public static void init() {  		ClientLifecycleEvents.CLIENT_STARTED.register(MuseumItemCache::load);  	} -	 +  	private static void load(MinecraftClient client) {  		loaded = CompletableFuture.runAsync(() -> {  			try (BufferedReader reader = Files.newBufferedReader(CACHE_FILE)) {  				Object2ObjectOpenHashMap<String, Object2ObjectOpenHashMap<String, ProfileMuseumData>> cachedData = SkyblockerMod.GSON.fromJson(reader, MAP_TYPE); -				 +  				MUSEUM_ITEM_CACHE.putAll(cachedData);  				LOGGER.info("[Skyblocker] Loaded museum items cache");  			} catch (NoSuchFileException ignored) { @@ -60,7 +60,7 @@ public class MuseumItemCache {  			}  		});  	} -	 +  	private static void save() {  		CompletableFuture.runAsync(() -> {  			try (BufferedWriter writer = Files.newBufferedWriter(CACHE_FILE)) { @@ -70,7 +70,7 @@ public class MuseumItemCache {  			}  		});  	} -	 +  	private static void updateData4ProfileMember(String uuid, String profileId) {  		CompletableFuture.runAsync(() -> {  			try (ApiResponse response = Http.sendHypixelRequest("skyblock/museum", "?profile=" + profileId)) {				 @@ -78,32 +78,32 @@ public class MuseumItemCache {  				if (response.ok()) {  					JsonObject profileData = JsonParser.parseString(response.content()).getAsJsonObject();  					JsonObject memberData = profileData.get("members").getAsJsonObject().get(uuid).getAsJsonObject(); -					 +  					//We call them sets because it could either be a singular item or an entire armour set  					Map<String, JsonElement> donatedSets = memberData.get("items").getAsJsonObject().asMap(); -					 +  					//Set of all found item ids on profile  					ObjectOpenHashSet<String> itemIds = new ObjectOpenHashSet<>(); -					 +  					for (Map.Entry<String, JsonElement> donatedSet : donatedSets.entrySet()) {  						//Item is plural here because the nbt is a list  						String itemsData = donatedSet.getValue().getAsJsonObject().get("items").getAsJsonObject().get("data").getAsString();  						NbtList items = NbtIo.readCompressed(new ByteArrayInputStream(Base64.getDecoder().decode(itemsData))).getList("i", NbtElement.COMPOUND_TYPE); -						 +  						for (int i = 0; i < items.size(); i++) {  							NbtCompound tag = items.getCompound(i).getCompound("tag"); -							 +  							if (tag.contains("ExtraAttributes")) {  								NbtCompound extraAttributes = tag.getCompound("ExtraAttributes"); -								 +  								if (extraAttributes.contains("id")) itemIds.add(extraAttributes.getString("id"));  							}  						}  					} -					 +  					MUSEUM_ITEM_CACHE.get(uuid).put(profileId, new ProfileMuseumData(System.currentTimeMillis(), itemIds));  					save(); -					 +  					LOGGER.info("[Skyblocker] Successfully updated museum item cache for profile {}", profileId);  				}  			} catch (Exception e) { @@ -111,7 +111,7 @@ public class MuseumItemCache {  			}  		});  	} -	 +  	/**  	 * The cache is ticked upon switching skyblock servers  	 */ @@ -121,22 +121,22 @@ public class MuseumItemCache {  			Object2ObjectOpenHashMap<String, ProfileMuseumData> playerData = MUSEUM_ITEM_CACHE.computeIfAbsent(uuid, uuid1 -> Util.make(new Object2ObjectOpenHashMap<>(), map -> {  				map.put(profileId, ProfileMuseumData.EMPTY);  			})); -			 +  			if (playerData.get(profileId).stale()) updateData4ProfileMember(uuid, profileId);  		}  	} -	 +  	public static boolean hasItemInMuseum(String id) {  		String uuid = UndashedUuid.toString(MinecraftClient.getInstance().getSession().getUuidOrNull());  		ObjectOpenHashSet<String> collectedItemIds = MUSEUM_ITEM_CACHE.get(uuid).get(Utils.getProfileId()).collectedItemIds(); -		 +  		return collectedItemIds != null && collectedItemIds.contains(id);  	} -	 +  	private record ProfileMuseumData(long lastUpdated, ObjectOpenHashSet<String> collectedItemIds) {  		private static final ProfileMuseumData EMPTY = new ProfileMuseumData(0L, null);  		private static final long MAX_AGE = 86_400_000; -		 +  		private boolean stale() {  			return System.currentTimeMillis() > lastUpdated + MAX_AGE;  		} diff --git a/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java b/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java index c0648eba..0121f8ad 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java @@ -21,33 +21,33 @@ public class ApiUtils {  	 * Do not iterate over this map, it will be accessed and modified by multiple threads.  	 */  	private static final Object2ObjectOpenHashMap<String, String> NAME_2_UUID_CACHE = new Object2ObjectOpenHashMap<>(); -	 +  	public static void init() {  		//Clear cache every 20 minutes  		Scheduler.INSTANCE.scheduleCyclic(NAME_2_UUID_CACHE::clear, 24_000, true);  	} -	 +  	/**  	 * Multithreading is to be handled by the method caller  	 */  	public static String name2Uuid(String name) {  		Session session = MinecraftClient.getInstance().getSession(); -		 +  		if (session.getUsername().equals(name)) return UndashedUuid.toString(session.getUuidOrNull());  		if (NAME_2_UUID_CACHE.containsKey(name)) return NAME_2_UUID_CACHE.get(name); -		 +  		try (ApiResponse response = Http.sendName2UuidRequest(name)) {  			if (response.ok()) {  				String uuid = JsonParser.parseString(response.content()).getAsJsonObject().get("id").getAsString(); -				 +  				NAME_2_UUID_CACHE.put(name, uuid); -				 +  				return uuid;  			}  		} catch (Exception e) {  			LOGGER.error("[Skyblocker] Name to uuid lookup failed! Name: {}", name, e);  		} -		 +  		return "";  	}  } diff --git a/src/main/java/de/hysky/skyblocker/utils/Http.java b/src/main/java/de/hysky/skyblocker/utils/Http.java index 4c8a3ada..82ab6c5e 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Http.java +++ b/src/main/java/de/hysky/skyblocker/utils/Http.java @@ -36,7 +36,7 @@ public class Http {  	public static String sendGetRequest(String url) throws IOException, InterruptedException {  		return sendCacheableGetRequest(url).content();  	} -	 +  	private static ApiResponse sendCacheableGetRequest(String url) throws IOException, InterruptedException {  		HttpRequest request = HttpRequest.newBuilder()  				.GET() @@ -80,10 +80,10 @@ public class Http {  	public static ApiResponse sendHypixelRequest(String endpoint, @NotNull String query) throws IOException, InterruptedException {  		return sendCacheableGetRequest(HYPIXEL_PROXY + endpoint + query);  	} -	 +  	private static InputStream getDecodedInputStream(HttpResponse<InputStream> response) {  		String encoding = getContentEncoding(response.headers()); -		 +  		try {  			switch (encoding) {  				case "": diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index 71e08865..02b1637b 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -363,7 +363,7 @@ public class Utils {          if (isOnSkyblock && message.startsWith("Profile ID: ")) {              profileId = message.replace("Profile ID: ", ""); -             +              MuseumItemCache.tick(profileId);          } diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java index 064b564c..e4cfea1b 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -42,16 +42,16 @@ public class RenderHelper {              renderFilled(context, Vec3d.of(pos), ONE, colorComponents, alpha, false);          }      } -     +      private static void renderFilled(WorldRenderContext context, Vec3d pos, Vec3d dimensions, float[] colorComponents, float alpha, boolean throughWalls) {          MatrixStack matrices = context.matrixStack();          Vec3d camera = context.camera().getPos();          Tessellator tessellator = RenderSystem.renderThreadTesselator();          BufferBuilder buffer = tessellator.getBuffer(); -         +          matrices.push();          matrices.translate(-camera.x, -camera.y, -camera.z); -         +          RenderSystem.setShader(GameRenderer::getPositionColorProgram);          RenderSystem.setShaderColor(1f, 1f, 1f, 1f);          RenderSystem.polygonOffset(-1f, -10f); @@ -61,11 +61,11 @@ public class RenderHelper {          RenderSystem.enableDepthTest();          RenderSystem.depthFunc(throughWalls ? GL11.GL_ALWAYS : GL11.GL_LEQUAL);          RenderSystem.disableCull(); -         +          buffer.begin(DrawMode.TRIANGLE_STRIP, VertexFormats.POSITION_COLOR);          WorldRenderer.renderFilledBox(matrices, buffer, pos.x, pos.y, pos.z, pos.x + dimensions.x, pos.y + dimensions.y, pos.z + dimensions.z, colorComponents[0], colorComponents[1], colorComponents[2], alpha);          tessellator.draw(); -         +          matrices.pop();          RenderSystem.polygonOffset(0f, 0f);          RenderSystem.disablePolygonOffset(); diff --git a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java index cab18a50..cc80f74c 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java @@ -184,7 +184,7 @@ public class TitleContainerConfigScreen extends Screen {              // Refresh the value in the config with the bound value              if (changedScale) scaleOpt.forgetPendingValue();          } -         +          SkyblockerConfigManager.save();          this.client.setScreen(parent);      } | 
