Added ability to disable Meteor's API
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package cloudburst.rejects.mixin.meteor;
|
||||
|
||||
import cloudburst.rejects.utils.RejectsConfig;
|
||||
import meteordevelopment.meteorclient.gui.tabs.builtin.ConfigTab;
|
||||
import meteordevelopment.meteorclient.settings.*;
|
||||
import org.spongepowered.asm.mixin.*;
|
||||
|
||||
@Mixin(ConfigTab.class)
|
||||
public class ConfigTabMixin {
|
||||
@Shadow
|
||||
@Final
|
||||
private static Settings settings;
|
||||
|
||||
private static final SettingGroup sgRejects = settings.createGroup("Rejects");
|
||||
|
||||
private static final Setting<RejectsConfig.HttpAllowed> httpAllowed = sgRejects.add(new EnumSetting.Builder<RejectsConfig.HttpAllowed>()
|
||||
.name("http-allowed")
|
||||
.description("Changes what api endpoints can be reached.")
|
||||
.defaultValue(RejectsConfig.get().httpAllowed)
|
||||
.onChanged(v -> RejectsConfig.get().httpAllowed = v)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
27
src/main/java/cloudburst/rejects/mixin/meteor/HttpMixin.java
Normal file
27
src/main/java/cloudburst/rejects/mixin/meteor/HttpMixin.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package cloudburst.rejects.mixin.meteor;
|
||||
|
||||
import cloudburst.rejects.utils.RejectsConfig;
|
||||
import meteordevelopment.meteorclient.utils.network.Http;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.*;
|
||||
|
||||
|
||||
@Mixin(Http.class)
|
||||
public class HttpMixin {
|
||||
|
||||
@ModifyArg(method="get", at= @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/utils/network/Http$Request;<init>(Lmeteordevelopment/meteorclient/utils/network/Http$Method;Ljava/lang/String;)V"), remap = false)
|
||||
private static String onGet(String url) {
|
||||
if (RejectsConfig.get().httpAllowed == RejectsConfig.HttpAllowed.Nothing) return "http://0.0.0.0";
|
||||
else if (RejectsConfig.get().httpAllowed == RejectsConfig.HttpAllowed.NotMeteorApi && url.startsWith("https://meteorclient.com/api")) return "http://0.0.0.0";
|
||||
else if (RejectsConfig.get().httpAllowed == RejectsConfig.HttpAllowed.NotMeteorPing && url.startsWith("https://meteorclient.com/api/online")) return "http://0.0.0.0";
|
||||
return url;
|
||||
}
|
||||
|
||||
@ModifyArg(method="post", at= @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/utils/network/Http$Request;<init>(Lmeteordevelopment/meteorclient/utils/network/Http$Method;Ljava/lang/String;)V"), remap = false)
|
||||
private static String onPost(String url) {
|
||||
if (RejectsConfig.get().httpAllowed == RejectsConfig.HttpAllowed.Nothing) return "http://0.0.0.0";
|
||||
else if (RejectsConfig.get().httpAllowed == RejectsConfig.HttpAllowed.NotMeteorApi && url.startsWith("https://meteorclient.com/api")) return "http://0.0.0.0";
|
||||
else if (RejectsConfig.get().httpAllowed == RejectsConfig.HttpAllowed.NotMeteorPing && url.startsWith("https://meteorclient.com/api/online")) return "http://0.0.0.0";
|
||||
return url;
|
||||
}
|
||||
}
|
||||
41
src/main/java/cloudburst/rejects/utils/RejectsConfig.java
Normal file
41
src/main/java/cloudburst/rejects/utils/RejectsConfig.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package cloudburst.rejects.utils;
|
||||
|
||||
import meteordevelopment.meteorclient.systems.System;
|
||||
import meteordevelopment.meteorclient.MeteorClient;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
|
||||
public class RejectsConfig extends System<RejectsConfig> {
|
||||
private static final RejectsConfig rejectsConfig = new RejectsConfig();
|
||||
|
||||
public enum HttpAllowed {
|
||||
Everything,
|
||||
NotMeteorApi,
|
||||
NotMeteorPing,
|
||||
Nothing
|
||||
}
|
||||
|
||||
public HttpAllowed httpAllowed = HttpAllowed.Everything;
|
||||
|
||||
public RejectsConfig() {
|
||||
super("rejects-config");
|
||||
init();
|
||||
load(MeteorClient.FOLDER);
|
||||
}
|
||||
|
||||
public static RejectsConfig get() {
|
||||
return rejectsConfig;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NbtCompound toTag() {
|
||||
NbtCompound tag = new NbtCompound();
|
||||
tag.putString("httpAllowed", httpAllowed.toString());
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RejectsConfig fromTag(NbtCompound tag) {
|
||||
httpAllowed = HttpAllowed.valueOf(tag.getString("httpAllowed"));
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package cloudburst.rejects.utils;
|
||||
|
||||
import meteordevelopment.meteorclient.MeteorClient;
|
||||
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
@@ -7,6 +9,10 @@ public class RejectsUtils {
|
||||
public static int CPS = 0;
|
||||
|
||||
public static void init() {
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
|
||||
RejectsConfig.get().save(MeteorClient.FOLDER);
|
||||
}));
|
||||
|
||||
new Timer().scheduleAtFixedRate(newTimerTaskFromLambda(() -> CPS = 0), 0, 1000);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user