Skip to content

Commit d6080eb

Browse files
committed
Toggle for AntiFingerPrint button
1 parent a226269 commit d6080eb

File tree

3 files changed

+37
-13
lines changed

3 files changed

+37
-13
lines changed

src/main/java/net/cevapi/config/AntiFingerprintConfig.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ public final class AntiFingerprintConfig
6060
"After sandboxing a pack, automatically extract it using Minecraft's resource-pack loader so you can inspect the contents.",
6161
false);
6262

63+
private final CheckboxSetting showMultiplayerButton =
64+
new CheckboxSetting("Show multiplayer button",
65+
"Adds a shortcut to this panel to the Multiplayer screen.", true);
66+
6367
private final SliderSetting fingerprintThreshold = new SliderSetting(
6468
"Fingerprint threshold",
6569
"Number of packs within the window before a fingerprint attempt is assumed.",
@@ -110,6 +114,11 @@ public CheckboxSetting getExtractSandboxSetting()
110114
return extractSandbox;
111115
}
112116

117+
public CheckboxSetting getShowMultiplayerButtonSetting()
118+
{
119+
return showMultiplayerButton;
120+
}
121+
113122
public SliderSetting getFingerprintThresholdSetting()
114123
{
115124
return fingerprintThreshold;
@@ -155,6 +164,11 @@ public boolean shouldExtractSandbox()
155164
return extractSandbox.isChecked();
156165
}
157166

167+
public boolean shouldShowMultiplayerButton()
168+
{
169+
return showMultiplayerButton.isChecked();
170+
}
171+
158172
public int getFingerprintThreshold()
159173
{
160174
return Math.max(2, fingerprintThreshold.getValueI());
@@ -217,8 +231,8 @@ public Set<String> getWhitelistedHosts()
217231
public List<Setting> getAllSettings()
218232
{
219233
return Arrays.asList(policy, toastVerbosity, auditLog, purgeCache,
220-
isolateCache, extractSandbox, fingerprintThreshold,
221-
fingerprintWindowMs, whitelistedHosts);
234+
isolateCache, extractSandbox, showMultiplayerButton,
235+
fingerprintThreshold, fingerprintWindowMs, whitelistedHosts);
222236
}
223237

224238
private static boolean isValidHostList(String value)

src/main/java/net/cevapi/config/AntiFingerprintConfigScreen.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,14 @@ CycleButton.<AntiFingerprintConfig.ToastVerbosity> builder(
102102
.setChecked(value)));
103103
y += 34;
104104

105+
addRenderableWidget(CycleButton.onOffBuilder()
106+
.withInitialValue(config.shouldShowMultiplayerButton())
107+
.create(centerX - 100, y, 200, 20,
108+
Component.literal("Show Multiplayer button"),
109+
(button, value) -> config.getShowMultiplayerButtonSetting()
110+
.setChecked(value)));
111+
y += 34;
112+
105113
// Extra breathing room before first text field so labels never clip
106114
y += FIRST_FIELD_TOP_SPACER;
107115

src/main/java/net/wurstclient/mixin/MultiplayerScreenMixin.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@
1515

1616
import com.llamalad7.mixinextras.sugar.Local;
1717
import net.wurstclient.WurstClient;
18-
import net.wurstclient.serverfinder.CleanUpScreen;
18+
import net.cevapi.config.AntiFingerprintConfigScreen;
19+
import net.cevapi.security.ResourcePackProtector;
1920
import net.wurstclient.serverfinder.ServerFinderScreen;
2021
import net.wurstclient.util.LastServerRememberer;
21-
import net.cevapi.config.AntiFingerprintConfigScreen;
2222
import net.minecraft.client.gui.components.Button;
2323
import net.minecraft.client.gui.layouts.LinearLayout;
2424
import net.minecraft.client.gui.screens.Screen;
2525
import net.minecraft.client.gui.screens.multiplayer.JoinMultiplayerScreen;
2626
import net.minecraft.client.multiplayer.ServerData;
2727
import net.minecraft.network.chat.Component;
2828
import net.wurstclient.nicewurst.NiceWurstModule;
29+
import net.wurstclient.serverfinder.CleanUpScreen;
2930

3031
@Mixin(JoinMultiplayerScreen.class)
3132
public class MultiplayerScreenMixin extends Screen
@@ -84,12 +85,13 @@ private void onRefreshWidgetPositions(CallbackInfo ci)
8485
if(!WurstClient.INSTANCE.isEnabled())
8586
return;
8687

87-
if(antiFingerprintButton == null)
88+
boolean showAntiFingerprintButton = NiceWurstModule
89+
.showAntiFingerprintControls()
90+
&& ResourcePackProtector.getConfig().shouldShowMultiplayerButton();
91+
92+
if(showAntiFingerprintButton)
8893
{
89-
if(!NiceWurstModule.showAntiFingerprintControls())
90-
{
91-
antiFingerprintButton = null;
92-
}else
94+
if(antiFingerprintButton == null)
9395
{
9496
antiFingerprintButton = Button.builder(
9597
Component.literal("Anti-Fingerprint"),
@@ -98,14 +100,14 @@ private void onRefreshWidgetPositions(CallbackInfo ci)
98100
.bounds(0, 0, 100, 20).build();
99101
addRenderableWidget(antiFingerprintButton);
100102
}
101-
}
102-
103-
if(antiFingerprintButton != null)
104-
{
103+
105104
antiFingerprintButton.setX(width / 2 + 54);
106105
antiFingerprintButton.setY(10);
107106
antiFingerprintButton.setWidth(100);
108107
antiFingerprintButton.visible = true;
108+
}else if(antiFingerprintButton != null)
109+
{
110+
antiFingerprintButton.visible = false;
109111
}
110112

111113
if(cornerServerFinderButton == null)

0 commit comments

Comments
 (0)