Skip to content
This repository was archived by the owner on Feb 9, 2022. It is now read-only.

Commit fe7172a

Browse files
author
Explv
committed
- Create sub dirs for resources if they do not exist
- Cache images
1 parent 4e551f1 commit fe7172a

File tree

7 files changed

+42
-15
lines changed

7 files changed

+42
-15
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>org.explv.explv_osbot_manager</groupId>
88
<artifactId>explvs_aio</artifactId>
9-
<version>v3.1.10</version>
9+
<version>v3.1.11</version>
1010
<repositories>
1111
<repository>
1212
<id>local-repo</id>

src/main/java/gui/IconButton.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ public void paintComponent(Graphics g) {
2525
};
2626
button.setToolTipText(toolTip);
2727

28-
BufferedImage iconImage = ImageManager.loadImage(icon);
28+
BufferedImage iconImage = ImageManager.getInstance().loadImage(icon);
2929
if (iconImage != null) {
3030
button.setIcon(new ImageIcon(iconImage));
3131
}
3232

33-
BufferedImage rolloverIconImage = ImageManager.loadImage(rolloverIcon);
33+
BufferedImage rolloverIconImage = ImageManager.getInstance().loadImage(rolloverIcon);
3434
if (rolloverIconImage != null) {
3535
button.setRolloverIcon(new ImageIcon(rolloverIconImage));
3636
}

src/main/java/gui/utils/LoadoutPanel.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
public class LoadoutPanel extends JPanel {
3030

3131
private static final String IMAGE_DIR = "images/loadout/";
32-
private static final BufferedImage SLOT_BACKGROUND_IMAGE = ImageManager.loadImage(IMAGE_DIR + "slot_background.png");
32+
private static final BufferedImage SLOT_BACKGROUND_IMAGE = ImageManager.getInstance().loadImage(IMAGE_DIR + "slot_background.png");
3333

3434
private Map<EquipmentSlot, String> equipmentMap = new HashMap<>();
3535

@@ -186,7 +186,7 @@ private JButton createButton(final EquipmentSlot equipmentSlot, final String ima
186186
button.setBorder(BorderFactory.createEmptyBorder());
187187
button.setFocusPainted(false);
188188

189-
button.setIcon(new ImageIcon(ImageManager.loadImage(IMAGE_DIR + imageName)));
189+
button.setIcon(new ImageIcon(ImageManager.getInstance().loadImage(IMAGE_DIR + imageName)));
190190
button.addActionListener(new EquipmentButtonActionListener(equipmentSlot));
191191

192192
return button;

src/main/java/paint/Paint.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class Paint implements Painter {
2727
private boolean paintHidden;
2828
private boolean toggleButtonHovered;
2929

30-
private static final Image mouseImage = ImageManager.loadImage("images/cursor.png");
30+
private static final Image mouseImage = ImageManager.getInstance().loadImage("images/cursor.png");
3131

3232
private boolean paused;
3333

src/main/java/script/AIO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
@ScriptManifest(author = "Explv", name = "Explv's AIO " + AIO.VERSION, info = "AIO", version = 0, logo = "http://i.imgur.com/58Zz0fb.png")
2929
public class AIO extends Script {
3030

31-
static final String VERSION = "v3.1.10";
31+
static final String VERSION = "v3.1.11";
3232

3333
private Gui gui;
3434
private Paint paint;

src/main/java/util/file_managers/ImageManager.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,40 @@
44
import java.awt.image.BufferedImage;
55
import java.io.IOException;
66
import java.io.InputStream;
7+
import java.util.HashMap;
8+
import java.util.Map;
79

810
public class ImageManager extends ResourceManager {
911

10-
public static BufferedImage loadImage(final String relativeImagePath) {
12+
private static ImageManager instance;
13+
14+
private final Map<String, BufferedImage> imageCache = new HashMap<>();
15+
16+
private ImageManager() {
17+
}
18+
19+
synchronized public static ImageManager getInstance() {
20+
if (instance == null) {
21+
instance = new ImageManager();
22+
}
23+
return instance;
24+
}
25+
26+
public BufferedImage loadImage(final String relativeImagePath) {
27+
if (imageCache.containsKey(relativeImagePath)) {
28+
return imageCache.get(relativeImagePath);
29+
}
30+
1131
try (InputStream imageInputStream = loadFile(relativeImagePath)) {
1232
if (imageInputStream == null) {
1333
return null;
1434
}
1535

16-
return ImageIO.read(imageInputStream);
36+
BufferedImage image = ImageIO.read(imageInputStream);
37+
38+
imageCache.put(relativeImagePath, image);
39+
40+
return image;
1741
} catch (IOException e) {
1842
e.printStackTrace();
1943
}

src/main/java/util/file_managers/ResourceManager.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package util.file_managers;
22

33
import java.io.*;
4-
import java.net.MalformedURLException;
54
import java.net.URL;
6-
import java.net.URLConnection;
75
import java.nio.channels.Channels;
8-
import java.nio.channels.FileChannel;
96
import java.nio.channels.ReadableByteChannel;
107
import java.nio.file.Files;
118
import java.nio.file.Path;
@@ -35,7 +32,7 @@ public static InputStream loadFile(final String relativeFilePath) {
3532
saveFileFromGitHubToDataDirectory(relativeFilePath);
3633
return loadFileFromDataDir(relativeFilePath);
3734

38-
//
35+
3936
// InputStream jarInputStream = loadFileFromJar(relativeFilePath);
4037
//
4138
// if (jarInputStream != null) {
@@ -48,7 +45,8 @@ public static InputStream loadFile(final String relativeFilePath) {
4845
}
4946

5047
private static InputStream loadFileFromJar(final String relativeFilePath) {
51-
String jarFilePath = "/" + relativeFilePath;
48+
String jarFilePath = "/resources/" + relativeFilePath;
49+
System.out.println(jarFilePath);
5250
return ResourceManager.class.getResourceAsStream(jarFilePath);
5351
}
5452

@@ -85,7 +83,12 @@ private static void saveFileFromGitHubToDataDirectory(final String relativeFileP
8583

8684
ReadableByteChannel readableByteChannel = Channels.newChannel(url.openStream());
8785

88-
FileOutputStream fileOutputStream = new FileOutputStream(Paths.get(DIRECTORY, relativeFilePath).toFile());
86+
File outputFile = Paths.get(DIRECTORY, relativeFilePath).toFile();
87+
88+
outputFile.getParentFile().mkdirs();
89+
outputFile.createNewFile();
90+
91+
FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
8992
fileOutputStream.getChannel().transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
9093
} catch (IOException e) {
9194
e.printStackTrace();

0 commit comments

Comments
 (0)