Skip to content

Commit d97c467

Browse files
EllieEllie
Ellie
authored and
Ellie
committed
Fixes for Batch bars, improvements in client, and custom Ui options/fixes
1 parent 8fd1418 commit d97c467

17 files changed

+353
-310
lines changed

app/src/main/java/bot/AuthFrame.java

+22-4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ final class AuthFrame extends JFrame {
5656
screenRefresh,
5757
helpMenu,
5858
showVersion,
59-
newUi;
59+
newIcons,
60+
newUi,
61+
keepOpen;
6062

6163
private final Choice themeChoice = new Choice();
6264
private final Choice initChoice = new Choice();
@@ -212,14 +214,16 @@ public void windowClosing(final WindowEvent e) {
212214
}
213215

214216
// Build out all of our checkbox options
215-
Checkbox[] checkBoxes = {
217+
Component[] checkBoxes = {
216218
autoLogin = new Checkbox(" Auto-login", false),
217219
sideBar = new Checkbox(" Show Side Bar", true),
218220
logWindow = new Checkbox(" Open Log Window", false),
219221
debug = new Checkbox(" Open Debugger", false),
220222
botPaint = new Checkbox(" Show Bot Paint", true),
221223
disableGraphics = new Checkbox(" Disable Graphics", false),
222-
newUi = new Checkbox(" New UI style", false),
224+
newUi = new Checkbox(" Custom Game UI", false),
225+
newIcons = new Checkbox(" New Skillbar Icons", false),
226+
keepOpen = new Checkbox(" Keep Inv Open", false),
223227
interlace = new Checkbox(" Interlace Mode", false),
224228
screenRefresh = new Checkbox(" 60s Screen Refresh", true),
225229
helpMenu = new Checkbox(" Show Help Menu", false),
@@ -330,7 +334,9 @@ private void setDefaultValues() {
330334
interlace.setState(false);
331335
helpMenu.setState(false);
332336
showVersion.setState(false);
337+
newIcons.setState(false);
333338
newUi.setState(false);
339+
keepOpen.setState(true);
334340
}
335341

336342
public void storeAuthData(AuthFrame auth) {
@@ -366,7 +372,9 @@ public void storeAuthData(AuthFrame auth) {
366372
p.put("screen-refresh", auth.getScreenRefresh());
367373
p.put("help", auth.getHelpMenu());
368374
p.put("version", auth.getShowVersion());
375+
p.put("new-icons", auth.getNewIcons());
369376
p.put("new-ui", auth.getNewUi());
377+
p.put("keep-open", auth.getKeepOpen());
370378
p.put("server-ip", auth.getServerIpChoice());
371379
p.put("theme", auth.getThemeName());
372380

@@ -395,7 +403,7 @@ public void storeAuthData(AuthFrame auth) {
395403
* @param component component to be resized
396404
* @param size Dimension object representing the x and y size
397405
*/
398-
private static void setElementSizing(Component component, Dimension size) {
406+
private void setElementSizing(Component component, Dimension size) {
399407
component.setMaximumSize(size);
400408
component.setMinimumSize(size);
401409
component.setPreferredSize(size);
@@ -449,7 +457,9 @@ public void setVisible(final boolean visible) {
449457
helpMenu.setState(Boolean.parseBoolean(p.getProperty("help", "false")));
450458
showVersion.setState(Boolean.parseBoolean(p.getProperty("version", "false")));
451459
themeChoice.select(p.getProperty("theme", "RuneDark Theme"));
460+
newIcons.setState(Boolean.parseBoolean(p.getProperty("new-icons", "false")));
452461
newUi.setState(Boolean.parseBoolean(p.getProperty("new-ui", "false")));
462+
keepOpen.setState(Boolean.parseBoolean(p.getProperty("keep-open", "false")));
453463
screenRefresh.setState(Boolean.parseBoolean(p.getProperty("screen-refresh", "true")));
454464

455465
} catch (final Throwable t) {
@@ -569,10 +579,18 @@ synchronized String getShowVersion() {
569579
return Boolean.toString(showVersion.getState());
570580
}
571581

582+
synchronized String getNewIcons() {
583+
return Boolean.toString(newIcons.getState());
584+
}
585+
572586
synchronized String getNewUi() {
573587
return Boolean.toString(newUi.getState());
574588
}
575589

590+
synchronized String getKeepOpen() {
591+
return Boolean.toString(keepOpen.getState());
592+
}
593+
576594
synchronized void addActionListener(final ActionListener al) {
577595
okButton.addActionListener(al);
578596
}

app/src/main/java/bot/Config.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,17 @@ public void absorb(ParseResult parseResult) {
3939
// Boolean options
4040
setUsingAccount(parseResult.isUsingAccount());
4141
setAutoStart(parseResult.isAutoStart());
42+
setAutoStart(parseResult.isAutoStart());
4243
setAutoLogin(parseResult.isAutoLogin());
4344
setLogWindowVisible(parseResult.isLogWindowVisible());
4445
setDebug(parseResult.isDebug());
4546
setRender3DEnabled(parseResult.isRender3DEnabled());
4647
setGraphicsInterlacingEnabled(parseResult.isGraphicsInterlacingEnabled());
4748
setScriptSelectorWindowVisible(parseResult.isScriptSelectorOpen());
4849
setScreenRefresh(parseResult.getScreenRefresh());
49-
setUiStyle(parseResult.getNewUi());
50+
setNewIcons(parseResult.getNewIcons());
51+
setNewUi(parseResult.getNewUi());
52+
setKeepOpen(parseResult.getKeepOpen());
5053

5154
// position
5255
setPositionX(parseResult.getPositionX());

app/src/main/java/bot/Main.java

+64-54
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@
2323
import java.nio.file.Files;
2424
import java.nio.file.Path;
2525
import java.nio.file.Paths;
26+
import java.util.*;
2627
import java.util.AbstractMap.SimpleEntry;
27-
import java.util.ArrayList;
28-
import java.util.Comparator;
2928
import java.util.List;
30-
import java.util.Map;
3129
import java.util.stream.Collectors;
3230
import java.util.stream.Stream;
3331
import javax.swing.*;
@@ -87,6 +85,8 @@ public class Main {
8785
interlaceCheckbox,
8886
autoscrollLogsCheckbox,
8987
sidebarCheckbox,
88+
customUiMode,
89+
keepInvOpen,
9090
gfxCheckbox; // all the checkboxes on the sidepanel.
9191
private static JButton loadScriptButton,
9292
pathwalkerButton,
@@ -386,26 +386,26 @@ public static void main(String[] args)
386386
rscFrame.setSize(new Dimension(rscFrame.getWidth() + 122, rscFrame.getHeight()));
387387

388388
// Set checkboxes on side panel using "get" methods
389+
autoLoginCheckbox.setSelected(config.isAutoLogin());
390+
graphicsCheckbox.setSelected(config.isGraphicsEnabled());
391+
render3DCheckbox.setSelected(config.isRender3DEnabled());
392+
gfxCheckbox.setSelected(config.isGraphicsEnabled());
393+
controller.setDrawing(config.isGraphicsEnabled(), 0);
394+
controller.setRender3D(config.isRender3DEnabled());
389395
logWindowCheckbox.setSelected(config.isLogWindowVisible());
390396
sidebarCheckbox.setSelected(config.isSidebarVisible());
391397
debugCheckbox.setSelected(config.isDebug());
392398
interlaceCheckbox.setSelected(config.isGraphicsInterlacingEnabled());
393399
botPaintCheckbox.setSelected(config.isBotPaintVisible());
400+
customUiMode.setSelected(config.getNewUi());
401+
keepInvOpen.setSelected(config.getKeepOpen());
394402

395-
if (config.isGraphicsInterlacingEnabled()) {
403+
// Set client properties from checkboxes
404+
if (config.getKeepOpen()) controller.setKeepInventoryOpenMode(keepInvOpen.isSelected());
405+
if (config.isGraphicsInterlacingEnabled())
396406
controller.setInterlacer(config.isGraphicsInterlacingEnabled());
397-
}
398-
if (config.isScriptSelectorOpen()) {
399-
showLoadScript();
400-
}
401-
407+
if (config.isScriptSelectorOpen()) showLoadScript();
402408
if (config.isDebug()) debugger.open();
403-
autoLoginCheckbox.setSelected(config.isAutoLogin());
404-
graphicsCheckbox.setSelected(config.isGraphicsEnabled());
405-
render3DCheckbox.setSelected(config.isRender3DEnabled());
406-
gfxCheckbox.setSelected(config.isGraphicsEnabled());
407-
controller.setDrawing(config.isGraphicsEnabled(), 0);
408-
controller.setRender3D(config.isRender3DEnabled());
409409

410410
log("Initializing WindowListener...");
411411
windowListener =
@@ -607,14 +607,6 @@ private static void initializeMenuBar() {
607607
menuBar.add(logWindowCheckbox);
608608
menuBar.add(sidebarCheckbox);
609609

610-
// prevent tab/etc "focusing" an element
611-
menuBar.setFocusable(false);
612-
settingsMenu.setFocusable(false);
613-
themeMenu.setFocusable(false);
614-
gfxCheckbox.setFocusable(false);
615-
logWindowCheckbox.setFocusable(false);
616-
sidebarCheckbox.setFocusable(false);
617-
618610
// style our elements
619611
settingsMenu.setBackground(themeBackColor);
620612
settingsMenu.setBorder(BorderFactory.createLineBorder(themeBackColor));
@@ -650,11 +642,10 @@ private static void initializeMenuBar() {
650642
themeMenu.add(menuItem);
651643
}
652644
JMenuItem _accOpp;
653-
JCheckBox customUiMode, keepInvOpen;
654645
// Define settings menu drop down
655646
Component[] _settingsMenu = {
656647
_accOpp = new JMenuItem("Account Startup Settings", KeyEvent.VK_F4), // S key
657-
customUiMode = new JCheckBox("Custom in-game UI"),
648+
customUiMode = new JCheckBox("Custom In-game UI"),
658649
keepInvOpen = new JCheckBox("Keep Inventory Open"),
659650
};
660651

@@ -663,6 +654,16 @@ private static void initializeMenuBar() {
663654
settingsMenu.add(_menuItem);
664655
}
665656

657+
// prevent tab/etc "focusing" an element
658+
menuBar.setFocusable(false);
659+
settingsMenu.setFocusable(false);
660+
themeMenu.setFocusable(false);
661+
gfxCheckbox.setFocusable(false);
662+
logWindowCheckbox.setFocusable(false);
663+
sidebarCheckbox.setFocusable(false);
664+
customUiMode.setFocusable(false);
665+
keepInvOpen.setFocusable(false);
666+
666667
// menuItem.setAccelerator(KeyStroke.getKeyStroke((char) KeyEvent.VK_F4));
667668
// //opens 2 authframes
668669
_accOpp.addActionListener(
@@ -677,14 +678,20 @@ private static void initializeMenuBar() {
677678
authFrame.storeAuthData(authFrame);
678679
authFrame.setVisible(false);
679680
});
681+
settingsMenu.setPopupMenuVisible(false);
682+
settingsMenu.setSelected(false);
680683
authFrame.setVisible(true);
681684
});
682685
customUiMode.addActionListener(
683686
e -> {
687+
settingsMenu.setPopupMenuVisible(false);
688+
settingsMenu.setSelected(false);
684689
controller.setCustomUiMode(customUiMode.isSelected());
685690
});
686691
keepInvOpen.addActionListener(
687692
e -> {
693+
settingsMenu.setPopupMenuVisible(false);
694+
settingsMenu.setSelected(false);
688695
controller.setKeepInventoryOpenMode(keepInvOpen.isSelected());
689696
});
690697
}
@@ -790,8 +797,8 @@ private static void initializeBotFrame(JComponent botFrame) {
790797
botFrame.add(debugCheckbox);
791798
botFrame.add(interlaceCheckbox);
792799
botFrame.add(botPaintCheckbox);
793-
botFrame.add(graphicsCheckbox);
794800
botFrame.add(render3DCheckbox);
801+
botFrame.add(graphicsCheckbox);
795802
botFrame.add(takeScreenshotButton);
796803
botFrame.add(showIdButton);
797804
botFrame.add(openDebuggerButton);
@@ -1063,7 +1070,7 @@ private static void handleCache(Config config) {
10631070
}
10641071

10651072
// set new or old UI bar design
1066-
setUiStyle(config.getNewUi());
1073+
setIconStyle(config.getNewIcons());
10671074

10681075
// Generate our port file
10691076
if (config.getInitCache().equalsIgnoreCase("custom")) {
@@ -1088,65 +1095,59 @@ private static boolean checkCacheFiles() {
10881095
new File("cache" + File.separator + "video" + File.separator + "spritepacks");
10891096
File videoDirectory = new File("cache" + File.separator + "video/");
10901097
File[] spriteFilelist = spriteDirectory.listFiles();
1091-
File[] videoFilelist = videoDirectory.listFiles();
1098+
String[] videoFilelist = videoDirectory.list();
10921099
String[] fileNames = {
10931100
"authentic_landscape.orsc",
10941101
"authentic_sprites.orsc",
10951102
"custom_landscape.orsc",
10961103
"custom_sprites.osar",
10971104
"library.orsc",
1098-
"models.orsc"
1105+
"models.orsc",
1106+
"spritepacks"
10991107
};
11001108

1101-
if (spriteFilelist != null) {
1102-
if (!spriteFilelist[0].getName().equalsIgnoreCase("Menus.osar")) return false;
1109+
// check sprite files
1110+
if (spriteFilelist != null && spriteFilelist.length > 0) {
1111+
if (!spriteFilelist[0].getName().equalsIgnoreCase("menus.osar")) return false;
11031112
} else return false;
1104-
if (videoFilelist != null) {
1105-
if (videoFilelist.length < 6) return false;
1106-
String[] videoNames = new String[videoFilelist.length];
1107-
for (int i = 0; i < videoFilelist.length; i++) {
1108-
videoNames[i] = videoFilelist[i].getName();
1109-
}
1110-
// compare the file names we read to the names we need
1111-
for (String videoName : videoNames) {
1112-
boolean callReturn = true;
1113-
for (String fileName : fileNames) {
1114-
if (videoName.equalsIgnoreCase(fileName)) {
1115-
callReturn = false;
1116-
break;
1117-
}
1118-
}
1113+
1114+
// check video files
1115+
if (videoFilelist != null && videoFilelist.length >= 6) {
1116+
for (String fileName : fileNames) {
1117+
boolean callReturn = Arrays.stream(videoFilelist).noneMatch(fileName::equalsIgnoreCase);
11191118
// we are missing a file so regen cache
11201119
if (callReturn) return false;
11211120
}
11221121
} else return false;
1122+
11231123
return true;
11241124
}
11251125

1126-
private static void setUiStyle(boolean newStyle) {
1126+
private static void createCache() {
1127+
log("Cache Missing, Generating the Cache.");
11271128
// Create Cache directory
11281129
File dir = new File("." + File.separator + "Cache");
11291130
dir.mkdirs();
11301131

1131-
// Add config.txt to client cache (1 gives new UI icons, 0 gives old Icons)
1132+
// Copy embedded cache to cache directory
11321133
try {
1133-
FileWriter portFile = new FileWriter("Cache/config.txt");
1134-
portFile.write("Menus:" + (newStyle ? 1 : 0));
1135-
portFile.close();
1134+
Extractor.extractZipResource("/cache/ZipCache.zip", dir.toPath());
11361135
} catch (IOException e) {
11371136
e.printStackTrace();
11381137
System.out.println(e.getMessage());
11391138
}
11401139
}
11411140

1142-
private static void createCache() {
1141+
private static void setIconStyle(boolean newIcons) {
11431142
// Create Cache directory
11441143
File dir = new File("." + File.separator + "Cache");
11451144
dir.mkdirs();
11461145

1147-
// Copy embedded cache to cache directory
1146+
// Add config.txt to client cache (1 gives new UI icons, 0 gives old Icons)
11481147
try {
1149-
Extractor.extractZipResource("/cache/ZipCache.zip", dir.toPath());
1148+
FileWriter portFile = new FileWriter("Cache/config.txt");
1149+
portFile.write("Menus:" + (newIcons ? 1 : 0));
1150+
portFile.close();
11501151
} catch (IOException e) {
11511152
e.printStackTrace();
11521153
System.out.println(e.getMessage());
@@ -1292,6 +1293,15 @@ public static String getThemeName() {
12921293
return themeName;
12931294
}
12941295

1296+
/**
1297+
* Used by login listener to set
1298+
*
1299+
* @return
1300+
*/
1301+
public static boolean isCustomUiSelected() {
1302+
return customUiMode.isSelected();
1303+
}
1304+
12951305
/**
12961306
* Used by the WindowListener for tracking the log window.
12971307
*

app/src/main/java/bot/cli/CLIParser.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.nio.file.Paths;
1111
import java.util.ArrayList;
1212
import java.util.Properties;
13-
import javax.swing.*;
1413
import org.apache.commons.cli.*;
1514

1615
public class CLIParser {
@@ -64,7 +63,9 @@ private static void parseCommandArgumentOptions(ParseResult parseResult, Command
6463
parseResult.setRender3DEnabled(!cmd.hasOption("disable-3d"));
6564
parseResult.setGraphicsInterlacingEnabled(cmd.hasOption("interlace"));
6665
parseResult.setScreenRefresh(!cmd.hasOption("no-screen-refresh"));
67-
parseResult.setUiStyle(cmd.hasOption("new-ui"));
66+
parseResult.setNewIcons(cmd.hasOption("new-icons"));
67+
parseResult.setNewUi(cmd.hasOption("new-ui"));
68+
parseResult.setKeepOpen(cmd.hasOption("keep-open"));
6869
parseResult.setSpellId(cmd.getOptionValue("spell-id", "-1"));
6970
parseResult.setPositionX(Integer.parseInt(cmd.getOptionValue("x-position", "-1")));
7071
parseResult.setPositionX(Integer.parseInt(cmd.getOptionValue("y-position", "-1")));
@@ -143,9 +144,12 @@ private static void parseAccountProperties(ParseResult parseResult, String accou
143144
p.getProperty("interlace", "false").replace(" ", "").toLowerCase().contains("true"));
144145
parseResult.setScreenRefresh(
145146
p.getProperty("screen-refresh", "true").replace(" ", "").toLowerCase().contains("true"));
146-
parseResult.setUiStyle(
147+
parseResult.setNewIcons(
148+
p.getProperty("new-icons", "false").replace(" ", "").toLowerCase().contains("true"));
149+
parseResult.setNewUi(
147150
p.getProperty("new-ui", "false").replace(" ", "").toLowerCase().contains("true"));
148-
151+
parseResult.setKeepOpen(
152+
p.getProperty("keep-open", "false").replace(" ", "").toLowerCase().contains("true"));
149153
parseResult.setPositionX(
150154
Integer.parseInt(p.getProperty("x-position", "-1").replace(" ", "")));
151155
parseResult.setPositionY(

0 commit comments

Comments
 (0)