aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/moe/nea/notenoughupdates/init/MixinPlugin.java47
-rw-r--r--src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableCommonPacketWarnings.java37
-rw-r--r--src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableInvalidFishingHook.java15
-rw-r--r--src/main/resources/notenoughupdates.mixins.json29
4 files changed, 115 insertions, 13 deletions
diff --git a/src/main/java/moe/nea/notenoughupdates/init/MixinPlugin.java b/src/main/java/moe/nea/notenoughupdates/init/MixinPlugin.java
new file mode 100644
index 0000000..b2e7e4c
--- /dev/null
+++ b/src/main/java/moe/nea/notenoughupdates/init/MixinPlugin.java
@@ -0,0 +1,47 @@
+package moe.nea.notenoughupdates.init;
+
+import moe.nea.notenoughupdates.NotEnoughUpdates;
+import org.objectweb.asm.tree.ClassNode;
+import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
+import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
+
+import java.util.List;
+import java.util.Set;
+
+public class MixinPlugin implements IMixinConfigPlugin {
+ @Override
+ public void onLoad(String mixinPackage) {
+
+ }
+
+ @Override
+ public String getRefMapperConfig() {
+ return null;
+ }
+
+ @Override
+ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
+ return Boolean.getBoolean("notenoughupdates.debug") ||
+ !mixinClassName.startsWith("moe.nea.notenoughupdates.mixins.devenv");
+ }
+
+ @Override
+ public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
+
+ }
+
+ @Override
+ public List<String> getMixins() {
+ return null;
+ }
+
+ @Override
+ public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
+
+ }
+
+ @Override
+ public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
+
+ }
+}
diff --git a/src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableCommonPacketWarnings.java b/src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableCommonPacketWarnings.java
new file mode 100644
index 0000000..8302170
--- /dev/null
+++ b/src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableCommonPacketWarnings.java
@@ -0,0 +1,37 @@
+package moe.nea.notenoughupdates.mixins.devenv;
+
+import net.minecraft.client.network.ClientPlayNetworkHandler;
+import net.minecraft.util.Identifier;
+import org.slf4j.Logger;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+import java.util.Objects;
+
+@Mixin(ClientPlayNetworkHandler.class)
+public class DisableCommonPacketWarnings {
+
+ @Redirect(method = "onCustomPayload", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V"))
+ public void onCustomPacket(Logger instance, String s, Object o) {
+ if (!Objects.equals(o, Identifier.of("badlion", "mods"))) {
+ instance.warn(s, o);
+ }
+ }
+
+ @Redirect(method = "onEntityPassengersSet", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;)V"))
+ public void onUnknownPassenger(Logger instance, String s) {
+ // Ignore passenger data for unknown entities, since HyPixel just sends a lot of those.
+ }
+
+ @Redirect(method = "onTeam", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;[Ljava/lang/Object;)V"))
+ public void onOnTeam(Logger instance, String s, Object[] objects) {
+ // Ignore data for unknown teams, since HyPixel just sends a lot of invalid team data.
+ }
+
+ @Redirect(method = "onPlayerList", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V"))
+ public void onOnPlayerList(Logger instance, String s, Object o) {
+ // Ignore invalid player info, since HyPixel just sends a lot of invalid player info
+ }
+
+}
diff --git a/src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableInvalidFishingHook.java b/src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableInvalidFishingHook.java
new file mode 100644
index 0000000..0c434bd
--- /dev/null
+++ b/src/main/java/moe/nea/notenoughupdates/mixins/devenv/DisableInvalidFishingHook.java
@@ -0,0 +1,15 @@
+package moe.nea.notenoughupdates.mixins.devenv;
+
+import net.minecraft.entity.projectile.FishingBobberEntity;
+import org.slf4j.Logger;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(FishingBobberEntity.class)
+public class DisableInvalidFishingHook {
+ @Redirect(method = "onSpawnPacket", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V"))
+ public void onOnSpawnPacket(Logger instance, String s, Object o, Object o1) {
+ // Don't warn for broken fishing hooks, since HyPixel sends a bunch of those
+ }
+}
diff --git a/src/main/resources/notenoughupdates.mixins.json b/src/main/resources/notenoughupdates.mixins.json
index 1364f37..163d753 100644
--- a/src/main/resources/notenoughupdates.mixins.json
+++ b/src/main/resources/notenoughupdates.mixins.json
@@ -1,16 +1,19 @@
{
- "required": true,
- "package": "moe.nea.notenoughupdates.mixins",
- "compatibilityLevel": "JAVA_16",
- "client": [
- "MixinDownloadingTerrainScreen",
- "MixinMessageHandler",
- "MixinMinecraft",
- "MixinWorldRenderer"
- ],
- "mixins": [
- ],
- "injectors": {
- "defaultRequire": 1
+ "required": true,
+ "plugin": "moe.nea.notenoughupdates.init.MixinPlugin",
+ "package": "moe.nea.notenoughupdates.mixins",
+ "compatibilityLevel": "JAVA_16",
+ "client": [
+ "MixinDownloadingTerrainScreen",
+ "MixinMessageHandler",
+ "MixinMinecraft",
+ "MixinWorldRenderer",
+ "devenv.DisableCommonPacketWarnings"
+ ],
+ "mixins": [
+ "devenv.DisableInvalidFishingHook"
+ ],
+ "injectors": {
+ "defaultRequire": 1
}
}