aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-09-16 12:34:37 -0400
committerGitHub <noreply@github.com>2023-09-16 12:34:37 -0400
commitbeaf27678949a4be4f3791c57307f42ea77da40a (patch)
treedf5de03c9c2f9ad0ccec247eac951779f640900e /src/main
parent62d9cb4ecc075cb2de945b2aa2c5767f4fa66cf4 (diff)
downloadSkyblocker-beaf27678949a4be4f3791c57307f42ea77da40a.tar.gz
Skyblocker-beaf27678949a4be4f3791c57307f42ea77da40a.tar.bz2
Skyblocker-beaf27678949a4be4f3791c57307f42ea77da40a.zip
Hide fake players in social interactions screen (#312)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/SocialInteractionsPlayerListWidgetMixin.java24
-rw-r--r--src/main/resources/skyblocker.mixins.json1
2 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/SocialInteractionsPlayerListWidgetMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/SocialInteractionsPlayerListWidgetMixin.java
new file mode 100644
index 00000000..854c4e17
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/SocialInteractionsPlayerListWidgetMixin.java
@@ -0,0 +1,24 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import java.util.Map;
+
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+
+import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
+import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
+
+import me.xmrvizzy.skyblocker.utils.Utils;
+import net.minecraft.client.gui.screen.multiplayer.SocialInteractionsPlayerListEntry;
+import net.minecraft.client.gui.screen.multiplayer.SocialInteractionsPlayerListWidget;
+
+@Mixin(SocialInteractionsPlayerListWidget.class)
+public class SocialInteractionsPlayerListWidgetMixin {
+
+ @WrapOperation(method = "setPlayers", at = @At(value = "INVOKE", target = "Ljava/util/Map;put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", remap = false))
+ private Object skyblocker$hideInvalidPlayers(Map<Object, Object> map, Object uuid, Object entry, Operation<Object> operation) {
+ if (Utils.isOnSkyblock() && !((SocialInteractionsPlayerListEntry) entry).getName().matches("[A-Za-z0-9_]+")) return null;
+
+ return operation.call(map, uuid, entry);
+ }
+}
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index b81590b9..537f07d3 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -22,6 +22,7 @@
"PlayerListHudMixin",
"PlayerSkinProviderMixin",
"ScoreboardMixin",
+ "SocialInteractionsPlayerListWidgetMixin",
"WorldRendererMixin",
"YggdrasilServicesKeyInfoMixin",
"accessor.BeaconBlockEntityRendererInvoker",