Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit 1881658

Browse files
committed
add shortcut buttons for chats & friends to title screen & game menu
1 parent 839f1cb commit 1881658

File tree

35 files changed

+185
-78
lines changed

35 files changed

+185
-78
lines changed

1.16_combat-6/src/main/java/io/github/axolotlclient/api/APIOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,11 @@ public void init() {
5252

5353
openPrivacyNoteScreen = n ->
5454
client.execute(() -> client.openScreen(new PrivacyNoticeScreen(client.currentScreen, n)));
55-
KeyBinding binding = new KeyBinding("api.friends.sidebar.open", GLFW.GLFW_KEY_O, "category.axolotlclient");
55+
KeyBinding binding = new KeyBinding("api.chats.sidebar.open", GLFW.GLFW_KEY_O, "category.axolotlclient");
5656
KeyBindingHelper.registerKeyBinding(binding);
5757
ClientTickEvents.END_CLIENT_TICK.register(c -> {
5858
if (binding.wasPressed() && API.getInstance().isAuthenticated()) {
59-
c.openScreen(new FriendsSidebar(c.currentScreen));
59+
c.openScreen(new ChatsSidebar(c.currentScreen));
6060
}
6161
});
6262
category.add(new GenericOption("viewFriends", "clickToOpen",

1.16_combat-6/src/main/java/io/github/axolotlclient/api/FriendsSidebar.java renamed to 1.16_combat-6/src/main/java/io/github/axolotlclient/api/ChatsSidebar.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
import net.minecraft.util.math.MathHelper;
5050
import org.lwjgl.glfw.GLFW;
5151

52-
public class FriendsSidebar extends Screen implements ContextMenuScreen {
52+
public class ChatsSidebar extends Screen implements ContextMenuScreen {
5353

5454
private static final int ANIM_STEP = 8;
5555
private final Screen parent;
@@ -65,7 +65,7 @@ public class FriendsSidebar extends Screen implements ContextMenuScreen {
6565

6666
private ContextMenuContainer contextMenu;
6767

68-
public FriendsSidebar(Screen parent) {
68+
public ChatsSidebar(Screen parent) {
6969
super(new TranslatableText("api.chats.sidebar"));
7070
this.parent = parent;
7171
}

1.16_combat-6/src/main/java/io/github/axolotlclient/api/FriendsScreen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected FriendsScreen(Screen parent, Tab tab) {
5050
current = tab;
5151
}
5252

53-
protected FriendsScreen(Screen parent) {
53+
public FriendsScreen(Screen parent) {
5454
super(new TranslatableText("api.screen.friends"));
5555
this.parent = parent;
5656
}

1.16_combat-6/src/main/java/io/github/axolotlclient/mixin/GameMenuScreenMixin.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
import java.util.Objects;
2626

2727
import io.github.axolotlclient.api.API;
28-
import io.github.axolotlclient.api.FriendsSidebar;
28+
import io.github.axolotlclient.api.APIOptions;
29+
import io.github.axolotlclient.api.ChatsSidebar;
30+
import io.github.axolotlclient.api.FriendsScreen;
2931
import io.github.axolotlclient.modules.hud.HudEditScreen;
3032
import io.github.axolotlclient.modules.hypixel.HypixelAbstractionLayer;
3133
import io.github.axolotlclient.modules.hypixel.HypixelMods;
@@ -56,10 +58,16 @@ protected GameMenuScreenMixin(Text title) {
5658
}
5759

5860
@Inject(method = "initWidgets", at = @At("TAIL"))
59-
private void axolotlclient$friendsSidebarButton(CallbackInfo ci) {
60-
if (API.getInstance().isSocketConnected()) {
61-
addButton(new ButtonWidget(10, height - (axolotlclient$hasModMenu() ? 50 : 30), 75, 20, new TranslatableText("api.friends"),
62-
buttonWidget -> client.openScreen(new FriendsSidebar(this))));
61+
private void axolotlclient$sidebarButton(CallbackInfo ci) {
62+
if (API.getInstance().isAuthenticated()) {
63+
int buttonY = height - (axolotlclient$hasModMenu() ? 50 : 30);
64+
if (APIOptions.getInstance().addShortcutButtons.get()) {
65+
addButton(new ButtonWidget(10, buttonY, 75, 20, new TranslatableText("api.friends"),
66+
buttonWidget -> client.openScreen(new FriendsScreen(this))));
67+
buttonY -= 25;
68+
}
69+
addButton(new ButtonWidget(10, buttonY, 75, 20, new TranslatableText("api.chats"),
70+
buttonWidget -> client.openScreen(new ChatsSidebar(this))));
6371
}
6472
}
6573

1.16_combat-6/src/main/java/io/github/axolotlclient/mixin/TitleScreenMixin.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@
2828
import java.util.List;
2929

3030
import io.github.axolotlclient.AxolotlClient;
31+
import io.github.axolotlclient.api.API;
3132
import io.github.axolotlclient.api.APIOptions;
33+
import io.github.axolotlclient.api.FriendsScreen;
3234
import io.github.axolotlclient.api.NewsScreen;
35+
import io.github.axolotlclient.api.chat.ChatListScreen;
3336
import io.github.axolotlclient.api.requests.GlobalDataRequest;
3437
import io.github.axolotlclient.modules.auth.Auth;
3538
import io.github.axolotlclient.modules.auth.AuthWidget;
@@ -70,8 +73,17 @@ protected TitleScreenMixin() {
7073
AxolotlClient.LOGGER.info("Unbound \"Save Toolbar Activator\" to resolve conflict with the zoom key!");
7174
}
7275
List<AbstractButtonWidget> buttons = Collections.synchronizedList(new ArrayList<>());
76+
int leftButtonY = 10;
7377
if (Auth.getInstance().showButton.get()) {
74-
buttons.add(addButton(new AuthWidget()));
78+
buttons.add(addButton(new AuthWidget(10, leftButtonY)));
79+
leftButtonY += 25;
80+
}
81+
if (APIOptions.getInstance().addShortcutButtons.get() && API.getInstance().isAuthenticated()) {
82+
buttons.add(addButton(new ButtonWidget(10, leftButtonY, 50, 20, new TranslatableText("api.friends"),
83+
w -> client.openScreen(new FriendsScreen(this)))));
84+
leftButtonY += 25;
85+
buttons.add(addButton(new ButtonWidget(10, leftButtonY, 50, 20, new TranslatableText("api.chats"),
86+
w -> client.openScreen(new ChatListScreen(this)))));
7587
}
7688
GlobalDataRequest.get().thenAccept(data -> {
7789
int buttonY = 10;

1.16_combat-6/src/main/java/io/github/axolotlclient/modules/auth/AuthWidget.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131

3232
public class AuthWidget extends ButtonWidget {
3333

34-
public AuthWidget() {
35-
super(10, 10,
34+
public AuthWidget(int x, int y) {
35+
super(x, y,
3636
MinecraftClient.getInstance().textRenderer.getWidth(Auth.getInstance().getCurrent().getName()) + 28,
3737
20, Text.of(" " + Auth.getInstance().getCurrent().getName()), buttonWidget -> MinecraftClient.getInstance().openScreen(new AccountsScreen(MinecraftClient.getInstance().currentScreen)));
3838
}

1.20/src/main/java/io/github/axolotlclient/api/APIOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ public void init() {
5151

5252
openPrivacyNoteScreen = n ->
5353
client.execute(() -> client.setScreen(new PrivacyNoticeScreen(client.currentScreen, n)));
54-
KeyBinds.getInstance().registerWithSimpleAction(new KeyBind("api.friends.sidebar.open",
54+
KeyBinds.getInstance().registerWithSimpleAction(new KeyBind("api.chats.sidebar.open",
5555
InputUtil.KEY_O_CODE, "category.axolotlclient"),
5656
() -> {
5757
if (API.getInstance().isAuthenticated()) {
58-
client.setScreen(new FriendsSidebar(client.currentScreen));
58+
client.setScreen(new ChatsSidebar(client.currentScreen));
5959
}
6060
});
6161
category.add(new GenericOption("viewFriends", "clickToOpen",

1.20/src/main/java/io/github/axolotlclient/api/FriendsSidebar.java renamed to 1.20/src/main/java/io/github/axolotlclient/api/ChatsSidebar.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
import net.minecraft.util.Formatting;
4545
import net.minecraft.util.math.MathHelper;
4646

47-
public class FriendsSidebar extends Screen implements ContextMenuScreen {
47+
public class ChatsSidebar extends Screen implements ContextMenuScreen {
4848

4949
private static final int ANIM_STEP = 8;
5050
private final Screen parent;
@@ -60,7 +60,7 @@ public class FriendsSidebar extends Screen implements ContextMenuScreen {
6060

6161
private ContextMenuContainer contextMenu;
6262

63-
public FriendsSidebar(Screen parent) {
63+
public ChatsSidebar(Screen parent) {
6464
super(Text.translatable("api.chats.sidebar"));
6565
this.parent = parent;
6666
}

1.20/src/main/java/io/github/axolotlclient/api/FriendsScreen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ protected FriendsScreen(Screen parent, Tab tab) {
4848
current = tab;
4949
}
5050

51-
protected FriendsScreen(Screen parent) {
51+
public FriendsScreen(Screen parent) {
5252
super(Text.translatable("api.screen.friends"));
5353
this.parent = parent;
5454
}

1.20/src/main/java/io/github/axolotlclient/mixin/GameMenuScreenMixin.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
import java.util.function.Supplier;
2727

2828
import io.github.axolotlclient.api.API;
29-
import io.github.axolotlclient.api.FriendsSidebar;
29+
import io.github.axolotlclient.api.ChatsSidebar;
30+
import io.github.axolotlclient.api.FriendsScreen;
3031
import io.github.axolotlclient.modules.hud.HudEditScreen;
3132
import io.github.axolotlclient.modules.hypixel.HypixelAbstractionLayer;
3233
import io.github.axolotlclient.modules.hypixel.HypixelMods;
3334
import net.fabricmc.loader.api.FabricLoader;
34-
import net.minecraft.client.MinecraftClient;
3535
import net.minecraft.client.gui.screen.GameMenuScreen;
3636
import net.minecraft.client.gui.screen.Screen;
3737
import net.minecraft.client.gui.widget.ButtonWidget;
@@ -56,10 +56,14 @@ protected GameMenuScreenMixin(Text title) {
5656
}
5757

5858
@Inject(method = "initWidgets", at = @At("TAIL"))
59-
private void axolotlclient$addFriendsSidebarButton(CallbackInfo ci) {
59+
private void axolotlclient$addSidebarButton(CallbackInfo ci) {
6060
if (API.getInstance().isSocketConnected()) {
61+
addDrawableChild(ButtonWidget.builder(Text.translatable("api.chats"),
62+
button -> client.setScreen(new ChatsSidebar(this)))
63+
.positionAndSize(10, height - 55, 75, 20).build());
6164
addDrawableChild(ButtonWidget.builder(Text.translatable("api.friends"),
62-
button -> MinecraftClient.getInstance().setScreen(new FriendsSidebar(this))).positionAndSize(10, height - 30, 75, 20).build());
65+
button -> client.setScreen(new FriendsScreen(this)))
66+
.positionAndSize(10, height - 30, 75, 20).build());
6367
}
6468
}
6569

0 commit comments

Comments
 (0)