From cc91428cb8af0839671f81c609db1e35930d0379 Mon Sep 17 00:00:00 2001 From: Soda5601 <62250232+Soda5601@users.noreply.github.com> Date: Sat, 8 Apr 2023 16:07:21 +0800 Subject: [PATCH] Add an option to change your UA (#244) --- README.md | 7 ++-- .../mixin/meteor/HttpRequestMixin.java | 18 +++++++++ .../rejects/utils/ConfigModifier.java | 8 ++++ .../anticope/rejects/utils/RejectsConfig.java | 3 ++ .../anticope/rejects/utils/TntDamage.java | 38 ------------------- .../meteor-rejects-meteor.mixins.json | 1 + 6 files changed, 34 insertions(+), 41 deletions(-) create mode 100644 src/main/java/anticope/rejects/mixin/meteor/HttpRequestMixin.java delete mode 100644 src/main/java/anticope/rejects/utils/TntDamage.java diff --git a/README.md b/README.md index 9af4471..a50e11d 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,8 @@ - Radar HUD ## Config -- `Http Allowed` - Modify what http requests can be made with Meteor's http api +- `Http Allowed` - Modify what HTTP requests can be made with Meteor's HTTP API +- `Http User Agent` - Modify the HTTP header of Meteor's HTTP API - `Hidden Modules` - Hide modules from module gui. **requires restart when unhiding** -- `Load system fonts` - Disabling this for faster launch. You can put font into meteor-client/fonts folder. **requires restart to take effect** -- `Duplicate module names` - Allow duplicate module names. Best for addon compatibility. +- `Load System Fonts` - Disabling this for faster launch. You can put font into meteor-client/fonts folder. **requires restart to take effect** +- `Duplicate Module Names` - Allow duplicate module names. Enable it when you have one module overriding another. diff --git a/src/main/java/anticope/rejects/mixin/meteor/HttpRequestMixin.java b/src/main/java/anticope/rejects/mixin/meteor/HttpRequestMixin.java new file mode 100644 index 0000000..bb39782 --- /dev/null +++ b/src/main/java/anticope/rejects/mixin/meteor/HttpRequestMixin.java @@ -0,0 +1,18 @@ +package anticope.rejects.mixin.meteor; + +import anticope.rejects.utils.RejectsConfig; +import meteordevelopment.meteorclient.utils.network.Http; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.net.http.HttpRequest; + +@Mixin(Http.Request.class) +public class HttpRequestMixin { + @Redirect(method = "", at = @At(value = "INVOKE", target = "Ljava/net/http/HttpRequest$Builder;header(Ljava/lang/String;Ljava/lang/String;)Ljava/net/http/HttpRequest$Builder;")) + private HttpRequest.Builder onAddUAHeader(HttpRequest.Builder builder, String userAgent, String value) { + if (RejectsConfig.get().httpUserAgent.isBlank()) return builder; + return builder.header("User-Agent", value); + } +} diff --git a/src/main/java/anticope/rejects/utils/ConfigModifier.java b/src/main/java/anticope/rejects/utils/ConfigModifier.java index 6c27527..2575e24 100644 --- a/src/main/java/anticope/rejects/utils/ConfigModifier.java +++ b/src/main/java/anticope/rejects/utils/ConfigModifier.java @@ -20,6 +20,14 @@ public class ConfigModifier { .build() ); + public final Setting httpUserAgent = sgRejects.add(new StringSetting.Builder() + .name("http-user-agent") + .description("Changes the HTTP user agent. Empty for none.") + .defaultValue(RejectsConfig.get().httpUserAgent) + .onChanged(v -> RejectsConfig.get().httpUserAgent = v) + .build() + ); + public final Setting> hiddenModules = sgRejects.add(new ModuleListSetting.Builder() .name("hidden-modules") .description("Which modules to hide.") diff --git a/src/main/java/anticope/rejects/utils/RejectsConfig.java b/src/main/java/anticope/rejects/utils/RejectsConfig.java index 59c1b2f..e8cca6b 100644 --- a/src/main/java/anticope/rejects/utils/RejectsConfig.java +++ b/src/main/java/anticope/rejects/utils/RejectsConfig.java @@ -26,6 +26,7 @@ public class RejectsConfig extends System { } public HttpAllowed httpAllowed = HttpAllowed.Everything; + public String httpUserAgent = "Meteor Client"; public Set hiddenModules = new HashSet<>(); public boolean loadSystemFonts = true; public boolean duplicateModuleNames = false; @@ -66,6 +67,7 @@ public class RejectsConfig extends System { public NbtCompound toTag() { NbtCompound tag = new NbtCompound(); tag.putString("httpAllowed", httpAllowed.toString()); + tag.putString("httpUserAgent", httpUserAgent); tag.putBoolean("loadSystemFonts", loadSystemFonts); tag.putBoolean("duplicateModuleNames", duplicateModuleNames); @@ -79,6 +81,7 @@ public class RejectsConfig extends System { @Override public RejectsConfig fromTag(NbtCompound tag) { httpAllowed = HttpAllowed.valueOf(tag.getString("httpAllowed")); + httpUserAgent = tag.getString("httpUserAgent"); loadSystemFonts = tag.getBoolean("loadSystemFonts"); duplicateModuleNames = tag.getBoolean("duplicateModuleNames"); diff --git a/src/main/java/anticope/rejects/utils/TntDamage.java b/src/main/java/anticope/rejects/utils/TntDamage.java deleted file mode 100644 index 3fbcaa1..0000000 --- a/src/main/java/anticope/rejects/utils/TntDamage.java +++ /dev/null @@ -1,38 +0,0 @@ -package anticope.rejects.utils; - -import meteordevelopment.meteorclient.MeteorClient; -import meteordevelopment.meteorclient.utils.Utils; -import net.minecraft.block.BlockState; -import net.minecraft.fluid.FluidState; -import net.minecraft.util.math.BlockPos; - -import java.util.Optional; - -public class TntDamage { - public static int calculate(BlockPos bp) { - if (!Utils.canUpdate()) return 0; - int score = 0; - - for(int j = -5; j <= 5; ++j) { - for(int k = -5; k <= 5; ++k) { - for(int l = -5; l <= 5; ++l) { - BlockPos blockPos = new BlockPos(j, k, l); - BlockState blockState = MeteorClient.mc.world.getBlockState(blockPos); - FluidState fluidState = MeteorClient.mc.world.getFluidState(blockPos); - - float h = 2.8F; - Optional optional = blockState.isAir() && fluidState.isEmpty() ? Optional.empty() : Optional.of(Math.max(blockState.getBlock().getBlastResistance(), fluidState.getBlastResistance()));; - if (optional.isPresent()) { - h -= (optional.get() + 0.3F) * 0.3F; - } - - if (h > 0.0F) { - score++; - } - } - } - } - - return score; - } -} diff --git a/src/main/resources/meteor-rejects-meteor.mixins.json b/src/main/resources/meteor-rejects-meteor.mixins.json index 9760485..21e6be6 100644 --- a/src/main/resources/meteor-rejects-meteor.mixins.json +++ b/src/main/resources/meteor-rejects-meteor.mixins.json @@ -11,6 +11,7 @@ "FontUtilsMixin", "GuiRendererAccessor", "HttpMixin", + "HttpRequestMixin", "ModuleMixin", "ModulesMixin", "WAccountMixin",