Skip to content

Commit 82ca397

Browse files
committed
Toggle for AntiFingerPrint button
1 parent f9e8160 commit 82ca397

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
@@ -13,16 +13,17 @@
1313
import org.spongepowered.asm.mixin.injection.Inject;
1414
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1515
import net.wurstclient.WurstClient;
16-
import net.wurstclient.serverfinder.CleanUpScreen;
16+
import net.cevapi.config.AntiFingerprintConfigScreen;
17+
import net.cevapi.security.ResourcePackProtector;
1718
import net.wurstclient.serverfinder.ServerFinderScreen;
1819
import net.wurstclient.util.LastServerRememberer;
19-
import net.cevapi.config.AntiFingerprintConfigScreen;
2020
import net.minecraft.client.gui.components.Button;
2121
import net.minecraft.client.gui.screens.Screen;
2222
import net.minecraft.client.gui.screens.multiplayer.JoinMultiplayerScreen;
2323
import net.minecraft.client.multiplayer.ServerData;
2424
import net.minecraft.network.chat.Component;
2525
import net.wurstclient.nicewurst.NiceWurstModule;
26+
import net.wurstclient.serverfinder.CleanUpScreen;
2627

2728
@Mixin(JoinMultiplayerScreen.class)
2829
public class MultiplayerScreenMixin extends Screen
@@ -70,12 +71,13 @@ private void refreshCustomButtons()
7071
if(!WurstClient.INSTANCE.isEnabled())
7172
return;
7273

73-
if(antiFingerprintButton == null)
74+
boolean showAntiFingerprintButton = NiceWurstModule
75+
.showAntiFingerprintControls()
76+
&& ResourcePackProtector.getConfig().shouldShowMultiplayerButton();
77+
78+
if(showAntiFingerprintButton)
7479
{
75-
if(!NiceWurstModule.showAntiFingerprintControls())
76-
{
77-
antiFingerprintButton = null;
78-
}else
80+
if(antiFingerprintButton == null)
7981
{
8082
antiFingerprintButton = Button.builder(
8183
Component.literal("Anti-Fingerprint"),
@@ -84,14 +86,14 @@ private void refreshCustomButtons()
8486
.bounds(0, 0, 100, 20).build();
8587
addRenderableWidget(antiFingerprintButton);
8688
}
87-
}
88-
89-
if(antiFingerprintButton != null)
90-
{
89+
9190
antiFingerprintButton.setX(width / 2 + 54);
9291
antiFingerprintButton.setY(10);
9392
antiFingerprintButton.setWidth(100);
9493
antiFingerprintButton.visible = true;
94+
}else if(antiFingerprintButton != null)
95+
{
96+
antiFingerprintButton.visible = false;
9597
}
9698

9799
if(cornerServerFinderButton == null)

0 commit comments

Comments
 (0)