Skip to content

Commit

Permalink
feat(legacy): AltManager move up/move down (#5499)
Browse files Browse the repository at this point in the history
  • Loading branch information
MukjepScarlet authored Feb 1, 2025
1 parent 866acb8 commit edf8a17
Show file tree
Hide file tree
Showing 10 changed files with 241 additions and 175 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,12 @@ import net.ccbluex.liquidbounce.ui.client.hud.HUD.addNotification
import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification
import net.ccbluex.liquidbounce.utils.client.ClientUtils.LOGGER
import net.ccbluex.liquidbounce.utils.io.HttpUtils.get
import net.ccbluex.liquidbounce.utils.io.MiscUtils
import net.ccbluex.liquidbounce.utils.kotlin.SharedScopes
import net.ccbluex.liquidbounce.utils.kotlin.StringUtils
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody
import okhttp3.RequestBody.Companion.toRequestBody
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection

object SettingsCommand : Command("autosettings", "autosetting", "settings", "setting", "config") {

Expand Down Expand Up @@ -149,8 +148,7 @@ object SettingsCommand : Command("autosettings", "autosetting", "settings", "set
chat("§9Token: §6${response.token}")

// Store token in clipboard
val stringSelection = StringSelection(response.token)
Toolkit.getDefaultToolkit().systemClipboard.setContents(stringSelection, stringSelection)
MiscUtils.copy(response.token)
}

Status.ERROR -> chat("§c${response.message}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
package net.ccbluex.liquidbounce.features.command.commands

import net.ccbluex.liquidbounce.features.command.Command
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection
import net.ccbluex.liquidbounce.utils.io.MiscUtils

object UsernameCommand : Command("username", "ign") {
/**
Expand All @@ -18,7 +17,6 @@ object UsernameCommand : Command("username", "ign") {

chat("Username: $username")

val stringSelection = StringSelection(username)
Toolkit.getDefaultToolkit().systemClipboard.setContents(stringSelection, stringSelection)
MiscUtils.copy(username)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ import net.ccbluex.liquidbounce.LiquidBounce.commandManager
import net.ccbluex.liquidbounce.chat.packet.packets.ServerRequestJWTPacket
import net.ccbluex.liquidbounce.features.command.Command
import net.ccbluex.liquidbounce.features.module.modules.misc.LiquidChat
import net.ccbluex.liquidbounce.utils.io.MiscUtils
import net.ccbluex.liquidbounce.utils.kotlin.StringUtils
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection

object ChatTokenCommand : Command("chattoken") {

Expand Down Expand Up @@ -49,8 +48,7 @@ object ChatTokenCommand : Command("chattoken") {
return
}

val stringSelection = StringSelection(LiquidChat.jwtToken)
Toolkit.getDefaultToolkit().systemClipboard.setContents(stringSelection, stringSelection)
MiscUtils.copy(LiquidChat.jwtToken)
chat("§aCopied to clipboard!")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import net.ccbluex.liquidbounce.utils.io.HttpUtils
import net.ccbluex.liquidbounce.utils.io.MiscUtils
import net.ccbluex.liquidbounce.utils.kotlin.RandomUtils.randomAccount
import net.ccbluex.liquidbounce.utils.kotlin.SharedScopes
import net.ccbluex.liquidbounce.utils.kotlin.swap
import net.ccbluex.liquidbounce.utils.login.UserUtils.isValidTokenOffline
import net.ccbluex.liquidbounce.utils.ui.AbstractScreen
import net.minecraft.client.gui.GuiButton
Expand All @@ -41,8 +42,6 @@ import net.minecraft.client.gui.GuiTextField
import net.minecraft.util.Session
import org.lwjgl.input.Keyboard
import java.awt.Color
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection
import java.util.*

class GuiAltManager(private val prevGui: GuiScreen) : AbstractScreen() {
Expand All @@ -63,36 +62,38 @@ class GuiAltManager(private val prevGui: GuiScreen) : AbstractScreen() {
searchField = GuiTextField(2, Fonts.fontSemibold40, width - textFieldWidth - 10, 10, textFieldWidth, 20)
searchField.maxStringLength = Int.MAX_VALUE

altsList = GuiList(this)
altsList.run {
altsList = GuiList(this).apply {
registerScrollButtons(7, 8)

val mightBeTheCurrentAccount = accountsConfig.accounts.indexOfFirst { it.name == mc.session.username }
elementClicked(mightBeTheCurrentAccount, false, 0, 0)

scrollBy(mightBeTheCurrentAccount * altsList.getSlotHeight())
scrollBy(mightBeTheCurrentAccount * this.getSlotHeight())
}

// Setup buttons

val startPositionY = 22
addButton = +GuiButton(1, width - 80, startPositionY + 24, 70, 20, translationButton("add"))
removeButton = +GuiButton(2, width - 80, startPositionY + 24 * 2, 70, 20, translationButton("remove"))
+GuiButton(7, width - 80, startPositionY + 24 * 3, 70, 20, translationButton("import"))
+GuiButton(12, width - 80, startPositionY + 24 * 4, 70, 20, translationButton("export"))
copyButton = +GuiButton(8, width - 80, startPositionY + 24 * 5, 70, 20, translationButton("copy"))
+GuiButton(13, width - 80, startPositionY + 24 * 3, 70, 20, translationButton("moveUp"))
+GuiButton(14, width - 80, startPositionY + 24 * 4, 70, 20, translationButton("moveDown"))
+GuiButton(7, width - 80, startPositionY + 24 * 5, 70, 20, translationButton("import"))
+GuiButton(12, width - 80, startPositionY + 24 * 6, 70, 20, translationButton("export"))
copyButton = +GuiButton(8, width - 80, startPositionY + 24 * 7, 70, 20, translationButton("altManager.copy"))

+GuiButton(0, width - 80, height - 65, 70, 20, translationButton("back"))
loginButton = +GuiButton(3, 5, startPositionY + 24, 90, 20, translationButton("login"))
randomAltButton = +GuiButton(4, 5, startPositionY + 24 * 2, 90, 20, translationButton("randomAlt"))
randomNameButton = +GuiButton(5, 5, startPositionY + 24 * 3, 90, 20, translationButton("randomName"))
+GuiButton(6, 5, startPositionY + 24 * 4, 90, 20, translationButton("directLogin"))
+GuiButton(10, 5, startPositionY + 24 * 5, 90, 20, translationButton("sessionLogin"))
loginButton = +GuiButton(3, 5, startPositionY + 24, 90, 20, translationButton("altManager.login"))
randomAltButton = +GuiButton(4, 5, startPositionY + 24 * 2, 90, 20, translationButton("altManager.randomAlt"))
randomNameButton = +GuiButton(5, 5, startPositionY + 24 * 3, 90, 20, translationButton("altManager.randomName"))
+GuiButton(6, 5, startPositionY + 24 * 4, 90, 20, translationButton("altManager.directLogin"))
+GuiButton(10, 5, startPositionY + 24 * 5, 90, 20, translationButton("altManager.sessionLogin"))

if (activeGenerators.getOrDefault("thealtening", true)) {
+GuiButton(9, 5, startPositionY + 24 * 6, 90, 20, translationButton("theAltening"))
+GuiButton(9, 5, startPositionY + 24 * 6, 90, 20, translationButton("altManager.theAltening"))
}

+GuiButton(11, 5, startPositionY + 24 * 7, 90, 20, translationButton("cape"))
+GuiButton(11, 5, startPositionY + 24 * 7, 90, 20, translationButton("altManager.cape"))
}

override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) {
Expand Down Expand Up @@ -259,7 +260,7 @@ class GuiAltManager(private val prevGui: GuiScreen) : AbstractScreen() {
}

// Copy to clipboard
Toolkit.getDefaultToolkit().systemClipboard.setContents(StringSelection(formattedData), null)
MiscUtils.copy(formattedData)
status = "§aCopied account into your clipboard."
} catch (any: Exception) {
any.printStackTrace()
Expand All @@ -277,6 +278,50 @@ class GuiAltManager(private val prevGui: GuiScreen) : AbstractScreen() {
11 -> { // Donator Cape Button
mc.displayGuiScreen(GuiDonatorCape(this))
}

13 -> { // Move Up Button
val currentAccount = altsList.selectedAccount

if (currentAccount == null) {
status = "§cSelect an account."
return
}

val currentIndex = altsList.accounts.indexOf(currentAccount)
if (currentIndex == 0) {
return
}
val prevElement = altsList.accounts[currentIndex - 1]
val prevIndex = accountsConfig.accounts.indexOf(prevElement)
val currentOriginalIndex = accountsConfig.accounts.indexOf(currentAccount)

// Move currentAccount
accountsConfig.accounts.swap(prevIndex, currentOriginalIndex)
accountsConfig.saveConfig()
altsList.selectedSlot--
}

14 -> { // Move Down Button
val currentAccount = altsList.selectedAccount

if (currentAccount == null) {
status = "§cSelect an account."
return
}

val currentIndex = altsList.accounts.indexOf(currentAccount)
if (currentIndex == altsList.accounts.lastIndex) {
return
}
val nextElement = altsList.accounts[currentIndex + 1]
val nextIndex = accountsConfig.accounts.indexOf(nextElement)
val currentOriginalIndex = accountsConfig.accounts.indexOf(currentAccount)

// Move currentAccount
accountsConfig.accounts.swap(nextIndex, currentOriginalIndex)
accountsConfig.saveConfig()
altsList.selectedSlot++
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class GuiSessionLogin(private val prevGui: GuiAltManager) : AbstractScreen() {
Keyboard.enableRepeatEvents(true)

// Add buttons to screen
loginButton = +GuiButton(1, width / 2 - 100, height / 2 - 60, translationButton("login"))
loginButton = +GuiButton(1, width / 2 - 100, height / 2 - 60, translationButton("altManager.login"))

+GuiButton(0, width / 2 - 100, height / 2 - 30, translationButton("back"))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ class GuiTheAltening(private val prevGui: GuiAltManager) : AbstractScreen() {
Keyboard.enableRepeatEvents(true)

// Login button
loginButton = +GuiButton(2, width / 2 - 100, height / 2 - 90, translationButton("login"))
loginButton = +GuiButton(2, width / 2 - 100, height / 2 - 90, translationButton("altManager.login"))

// Generate button
generateButton = +GuiButton(1, width / 2 - 100, height / 2, "Generate")

// Buy & Back buttons
+GuiButton(3, width / 2 - 100, height / 2 + 70, 98, 20, translationButton("buy"))
+GuiButton(3, width / 2 - 100, height / 2 + 70, 98, 20, translationButton("altManager.buy"))
+GuiButton(0, width / 2 + 2, height / 2 + 70, 98, 20, translationButton("back"))

// Token text field
Expand Down
9 changes: 7 additions & 2 deletions src/main/java/net/ccbluex/liquidbounce/utils/io/MiscUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ import javax.swing.filechooser.FileNameExtensionFilter

object MiscUtils : MinecraftInstance {

@JvmStatic
fun copy(content: String) {
val selection = StringSelection(content)
Toolkit.getDefaultToolkit().systemClipboard.setContents(selection, null)
}

@JvmStatic
private fun JTextArea.adjustTextAreaSize() {
val fontMetrics = getFontMetrics(font)
Expand Down Expand Up @@ -88,8 +94,7 @@ object MiscUtils : MinecraftInstance {

val copyButton = JButton("Copy Text").apply {
addActionListener {
val clipboard = Toolkit.getDefaultToolkit().systemClipboard
clipboard.setContents(StringSelection(content), null)
copy(content)
JOptionPane.showMessageDialog(null, "Text copied to clipboard!", "Info", JOptionPane.INFORMATION_MESSAGE)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,15 @@ fun ClosedFloatingPointRange<Float>.coerceIn(range: ClosedFloatingPointRange<Flo
val newStart = this.start.coerceIn(range.start, range.endInclusive)
val newEnd = this.endInclusive.coerceIn(range.start, range.endInclusive)
return newStart..newEnd
}
}

fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
require(index1 in indices && index2 in indices)
if (index1 == index2) {
return
}

val elem = this[index1]
this[index1] = this[index2]
this[index2] = elem
}
31 changes: 18 additions & 13 deletions src/main/resources/assets/minecraft/liquidbounce/lang/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,31 @@
],
"translations": {
"menu.altManager": "Alt Manager",
"menu.fontManager": "Font Manager",
"menu.mods": "Mods",
"menu.serverStatus": "Server Status",
"menu.configuration": "Configuration",
"menu.contributors": "Contributors",

"button.add": "Add",
"button.remove": "Remove",
"button.back": "Back",
"button.moveUp": "Move Up",
"button.moveDown": "Move Down",
"button.import": "Import",
"button.export": "Export",
"button.copy": "Copy",
"button.back": "Back",
"button.login": "Login",
"button.randomAlt": "Random Alt",
"button.randomName": "Random Name",
"button.directLogin": "Direct Login",
"button.theAltening": "TheAltening",
"button.cape": "Cape",
"button.sessionLogin": "Session Login",

"button.buy": "Buy",
"button.add": "Add",
"button.remove": "Remove",

"button.altManager.copy": "Copy",
"button.altManager.login": "Login",
"button.altManager.randomAlt": "Random Alt",
"button.altManager.randomName": "Random Name",
"button.altManager.directLogin": "Direct Login",
"button.altManager.theAltening": "TheAltening",
"button.altManager.cape": "Cape",
"button.altManager.sessionLogin": "Session Login",
"button.altManager.buy": "Buy",

"button.fontManager.edit": "Edit",

"button.openURL": "Open URL",
"button.cancel": "Cancel",
Expand Down
Loading

0 comments on commit edf8a17

Please sign in to comment.