1
0
mirror of https://github.com/kami-blue/client synced 2025-02-20 23:27:14 +00:00

Added anti accidental disconnect

This commit is contained in:
Dewy REDACTED 2020-04-18 16:48:25 +01:00
parent e4326255fc
commit 8ebc53438c
No known key found for this signature in database
GPG Key ID: 0CAA84A783228505
4 changed files with 113 additions and 0 deletions

View File

@ -0,0 +1,70 @@
package me.zeroeightsix.kami.gui.mc;
import me.zeroeightsix.kami.KamiMod;
import me.zeroeightsix.kami.module.modules.misc.AntiDisconnect;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiMainMenu;
import net.minecraft.client.gui.GuiMultiplayer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.realms.RealmsBridge;
public class KamiGuiAntiDisconnect extends GuiScreen {
private int disconnectCount = KamiMod.MODULE_MANAGER.getModuleT(AntiDisconnect.class).requiredButtonPresses.getValue();
@Override
public void initGui() {
super.initGui();
this.buttonList.add(new GuiButton(0, this.width / 2 - 100, 200, "Back to Game"));
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, 230, String.format(KamiMod.colour + "4Press me %s time(s) to disconnect.", disconnectCount)));
}
@Override
protected void actionPerformed(GuiButton button) {
switch (button.id) {
case 0:
this.mc.displayGuiScreen(null);
this.mc.setIngameFocus();
break;
case 1:
if (disconnectCount > 1) {
disconnectCount--;
break;
}
boolean single = mc.isIntegratedServerRunning();
boolean connectedToRealms = mc.isConnectedToRealms();
button.enabled = false;
mc.world.sendQuittingDisconnectingPacket();
mc.loadWorld(null);
if (single)
{
mc.displayGuiScreen(new GuiMainMenu());
}
else if (connectedToRealms)
{
RealmsBridge realmsbridge = new RealmsBridge();
realmsbridge.switchToRealms(new GuiMainMenu());
}
else
{
mc.displayGuiScreen(new GuiMultiplayer(new GuiMainMenu()));
}
}
}
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
this.drawDefaultBackground();
this.drawCenteredString(this.fontRenderer, "Disconnect Confirmation", this.width / 2, 40, 10195199);
super.drawScreen(mouseX, mouseY, partialTicks);
}
}

View File

@ -0,0 +1,28 @@
package me.zeroeightsix.kami.mixin.client;
import me.zeroeightsix.kami.KamiMod;
import me.zeroeightsix.kami.gui.mc.KamiGuiAntiDisconnect;
import me.zeroeightsix.kami.module.modules.misc.AntiDisconnect;
import me.zeroeightsix.kami.util.Wrapper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiIngameMenu;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(GuiIngameMenu.class)
public class MixinGuiIngameMenu {
@Inject(method = "actionPerformed", at = @At("HEAD"), cancellable = true)
public void actionPerformed(GuiButton button, CallbackInfo callbackInfo) {
if (KamiMod.MODULE_MANAGER.getModuleT(AntiDisconnect.class).isEnabled()) {
switch (button.id) {
case 1:
Wrapper.getMinecraft().displayGuiScreen(new KamiGuiAntiDisconnect());
callbackInfo.cancel();
}
}
}
}

View File

@ -0,0 +1,14 @@
package me.zeroeightsix.kami.module.modules.misc;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
@Module.Info(
name = "AntiDisconnect",
description = "Are you sure you want to disconnect?",
category = Module.Category.MISC
)
public class AntiDisconnect extends Module {
public Setting<Integer> requiredButtonPresses = register(Settings.integerBuilder("Button Presses").withMinimum(1).withMaximum(20).withValue(6));
}

View File

@ -18,6 +18,7 @@
"MixinEntityRenderer",
"MixinFrustum",
"MixinGuiChat",
"MixinGuiIngameMenu",
"MixinGuiMainMenu",
"MixinGuiNewChat",
"MixinGuiPlayerTabOverlay",