diff --git a/sigIRCv2/.classpath b/sigIRCv2/.classpath index 0ee96ed..8d23a73 100644 --- a/sigIRCv2/.classpath +++ b/sigIRCv2/.classpath @@ -3,17 +3,17 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/sigIRCv2/sigIRCv2.bat b/sigIRCv2/sigIRCv2.bat index f9f92cf..71b188d 100644 --- a/sigIRCv2/sigIRCv2.bat +++ b/sigIRCv2/sigIRCv2.bat @@ -1,2 +1,2 @@ cd "C:\Users\Joshua Sigona\git\sigIRCv2\" -java -jar sigIRCv2.jar > log \ No newline at end of file +java -jar sigIRCv2.jar \ No newline at end of file diff --git a/sigIRCv2/sigIRCv2.jar b/sigIRCv2/sigIRCv2.jar index ac3f5a0..4875530 100644 Binary files a/sigIRCv2/sigIRCv2.jar and b/sigIRCv2/sigIRCv2.jar differ diff --git a/sigIRCv2/src/sig/Module.java b/sigIRCv2/src/sig/Module.java index 38c6b97..0c09b71 100644 --- a/sigIRCv2/src/sig/Module.java +++ b/sigIRCv2/src/sig/Module.java @@ -2,6 +2,7 @@ package sig; import java.awt.Color; import java.awt.Cursor; import java.awt.Graphics; +import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.KeyEvent; @@ -21,8 +22,8 @@ public class Module { public Rectangle2D position; protected boolean enabled; protected String name; - public static BufferedImage IMG_DRAGBAR; - public static BufferedImage MSG_SEPARATOR; + public static Image IMG_DRAGBAR; + public static Image MSG_SEPARATOR; public static boolean inDragZone=false; final protected int titleHeight; @@ -62,7 +63,7 @@ public class Module { public boolean inDragBounds(int x, int y) { return x>=position.getX() && x<=position.getX()+position.getWidth() && - y>=(int)position.getY()-Module.IMG_DRAGBAR.getHeight() && + y>=(int)position.getY()-Module.IMG_DRAGBAR.getHeight(sigIRC.panel) && y<=(int)position.getY(); } @@ -144,9 +145,9 @@ public class Module { if (!sigIRC.overlayMode) { g.drawImage(Module.IMG_DRAGBAR, (int)position.getX()+2, - (int)position.getY()-Module.IMG_DRAGBAR.getHeight(), + (int)position.getY()-Module.IMG_DRAGBAR.getHeight(sigIRC.panel), (int)position.getWidth()-4, - Module.IMG_DRAGBAR.getHeight(), + Module.IMG_DRAGBAR.getHeight(sigIRC.panel), sigIRC.panel); DrawUtils.drawTextFont(g, sigIRC.panel.smallFont, (int)position.getX(), (int)position.getY()-titleHeight/2+4, Color.BLACK, this.name); //g.fillRect((int)position.getX(), (int)position.getY(), (int)position.getWidth(), (int)position.getHeight()); diff --git a/sigIRCv2/src/sig/modules/Controller/ControlConfigurationWindow.java b/sigIRCv2/src/sig/modules/Controller/ControlConfigurationWindow.java index 919cc1a..d6acfdd 100644 --- a/sigIRCv2/src/sig/modules/Controller/ControlConfigurationWindow.java +++ b/sigIRCv2/src/sig/modules/Controller/ControlConfigurationWindow.java @@ -268,21 +268,13 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener JPanel selectionPanel1 = new JPanel(){ public void paintComponent(Graphics g) { super.paintComponent(g); - try { - g.drawImage(ImageIO.read(new File(ControllerModule.CONTROLLERPATH+"4-way_axis.png")), 0, 0, this); - } catch (IOException e) { - e.printStackTrace(); - } + g.drawImage(sigIRC.readImage(ControllerModule.CONTROLLERPATH+"4-way_axis.png"), 0, 0, this); } }; JPanel selectionPanel2 = new JPanel(){ public void paintComponent(Graphics g) { super.paintComponent(g); - try { - g.drawImage(ImageIO.read(new File(ControllerModule.CONTROLLERPATH+"2-way_axis.png")), 0, 0, this); - } catch (IOException e) { - e.printStackTrace(); - } + g.drawImage(sigIRC.readImage(ControllerModule.CONTROLLERPATH+"2-way_axis.png"), 0, 0, this); } }; //selectionPanel.setLayout(new BoxLayout(selectionPanel,BoxLayout.LINE_AXIS)); diff --git a/sigIRCv2/src/sig/modules/ControllerModule.java b/sigIRCv2/src/sig/modules/ControllerModule.java index d5b61f4..152fe44 100644 --- a/sigIRCv2/src/sig/modules/ControllerModule.java +++ b/sigIRCv2/src/sig/modules/ControllerModule.java @@ -92,13 +92,8 @@ public class ControllerModule extends Module{ } } controllers.addAll(ca); - try { - controller_img = ImageIO.read(new File(CONTROLLERPATH+"controller_template.png")).getScaledInstance((int)position.getWidth(), -1, 0); - controller_overlay_img = ImageIO.read(new File(CONTROLLERPATH+"controller_overlay.png")).getScaledInstance((int)position.getWidth(), -1, 0); - //System.out.println("Size of controller: "+controller_img.getWidth(sigIRC.panel)+","+controller_img.getHeight(sigIRC.panel)); - } catch (IOException e) { - e.printStackTrace(); - } + controller_img = sigIRC.readImage(CONTROLLERPATH+"controller_template.png").getScaledInstance((int)position.getWidth(), -1, 0); + controller_overlay_img = sigIRC.readImage(CONTROLLERPATH+"controller_overlay.png").getScaledInstance((int)position.getWidth(), -1, 0); //buttons.add(new Button(0.1,0.05,0.1,0.05,controllers.get(0),Identifier.Button._3,Color.RED,this)); LoadButtonAndAxisData(); click_buttons.add(new AddClickableButton(new Rectangle( diff --git a/sigIRCv2/src/sig/modules/RabiRaceModule.java b/sigIRCv2/src/sig/modules/RabiRaceModule.java index f0ccd73..caa80a9 100644 --- a/sigIRCv2/src/sig/modules/RabiRaceModule.java +++ b/sigIRCv2/src/sig/modules/RabiRaceModule.java @@ -140,12 +140,8 @@ public class RabiRaceModule extends Module{ } images = filtered_images.toArray(new String[filtered_images.size()]); for (String image : images) { - try { - //System.out.println("Loaded "+image); - image_map.put(image, ImageIO.read(new File(ITEMS_DIRECTORY+image))); - } catch (IOException e) { - e.printStackTrace(); - } + //System.out.println("Loaded "+image); + image_map.put(image, sigIRC.readImage(ITEMS_DIRECTORY+image)); } for (MemoryData md : MemoryData.values()) { diff --git a/sigIRCv2/src/sig/modules/RabiRibiModule.java b/sigIRCv2/src/sig/modules/RabiRibiModule.java index a827fb2..b55d1d7 100644 --- a/sigIRCv2/src/sig/modules/RabiRibiModule.java +++ b/sigIRCv2/src/sig/modules/RabiRibiModule.java @@ -83,10 +83,30 @@ public class RabiRibiModule extends Module{ private void Initialize() { RabiUtils.module = this; + CheckRabiRibiClient(); + + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + scheduler.scheduleWithFixedDelay(()->{ + CheckRabiRibiClient(); + }, 5000, 5000, TimeUnit.MILLISECONDS); + + this.overlay = new Overlay(this); + + EntityLookupData.parent=this; + EntityLookupData.loadEntityLookupData(lookup_table); + ScheduledExecutorService scheduler2 = Executors.newScheduledThreadPool(1); + scheduler2.scheduleWithFixedDelay(()->{ + UpdateEntities(); + //System.out.println("Called Entity creation "+callcount+" times."); + }, 1000, 1000, TimeUnit.MILLISECONDS); + } + + private void CheckRabiRibiClient() { List pids; try { - pids = PsapiTools.getInstance().enumProcesses(); + pids = PsapiTools.getInstance().enumProcesses(); + boolean found=false; for (Integer pid : pids) { HANDLE process = Kernel32.INSTANCE.OpenProcess(PROCESS_PERMISSIONS, true, pid); List hModules; @@ -95,38 +115,35 @@ public class RabiRibiModule extends Module{ for(sig.modules.utils.Module m: hModules){ //System.out.println(m.getFileName()+":"+m.getEntryPoint()); if (m.getFileName().contains("rabiribi")) { - rabiRibiMemOffset = Pointer.nativeValue(m.getLpBaseOfDll().getPointer()); - System.out.println("Found an instance of Rabi-Ribi at 0x"+Long.toHexString(rabiRibiMemOffset)); - rabiRibiPID=pid; - foundRabiRibi=true; - rabiribiProcess=process; + found=true; + if (!foundRabiRibi) { + rabiRibiMemOffset = Pointer.nativeValue(m.getLpBaseOfDll().getPointer()); + System.out.println("Found an instance of Rabi-Ribi at 0x"+Long.toHexString(rabiRibiMemOffset)+" | File:"+m.getFileName()+","+m.getBaseName()); + rabiRibiPID=pid; + foundRabiRibi=true; + rabiribiProcess=process; + break; + } break; } } + if (found) { + break; + } } catch (Exception e) { e.printStackTrace(); } - if (foundRabiRibi) { - break; - } if (process!=null) { Kernel32.INSTANCE.CloseHandle(process); } } + if (!found && foundRabiRibi) { + foundRabiRibi=false; + System.out.println("Rabi-Ribi process lost."); + } } catch (Exception e) { e.printStackTrace(); } - - this.overlay = new Overlay(this); - - EntityLookupData.parent=this; - EntityLookupData.loadEntityLookupData(lookup_table); - - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - scheduler.scheduleWithFixedDelay(()->{ - UpdateEntities(); - //System.out.println("Called Entity creation "+callcount+" times."); - }, 1000, 1000, TimeUnit.MILLISECONDS); } public void ApplyConfigWindowProperties() { @@ -205,19 +222,21 @@ public class RabiRibiModule extends Module{ } private void UpdateEntities() { - int callcount=0; - long arrayPtr = readIntFromMemory(MemoryOffset.ENTITY_ARRAY); - for (int i=0;i0) { - DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(((bossImage!=null)?bossImage.getWidth():0)+4,160)+(int)position.getX()+4-Math.min(50, (bossImage!=null)?bossImage.getWidth():0)+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255), + DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0)+4,160)+(int)position.getX()+4-Math.min(50, (bossImage!=null)?bossImage.getWidth(sigIRC.panel):0)+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255), characterDatabase[sorteddmg[i]].getName()); DrawUtils.drawHealthbar(g, new Rectangle( - Math.min(((bossImage!=null)?bossImage.getWidth():0)+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth():0))+x, + Math.min(((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0)+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0))+x, (int)position.getY()+4+86+pos+y, 96, 10 ) , (double)characterDatabase[sorteddmg[i]].getDataProperty(property)/maxdmg, characterDatabase[sorteddmg[i]].getColor()); DecimalFormat df = new DecimalFormat("0.0"); - DrawUtils.drawOutlineText(g, sigIRC.panel.smallFont, Math.min((bossImage!=null)?bossImage.getWidth():0+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth():0))+108+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255), + DrawUtils.drawOutlineText(g, sigIRC.panel.smallFont, Math.min((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0))+108+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255), characterDatabase[sorteddmg[i]].getDataProperty(property)+" "+"("+df.format(((((double)characterDatabase[sorteddmg[i]].getDataProperty(property)/totaldmg))*100))+"%)"); pos+=16; } @@ -365,12 +366,8 @@ public class TouhouMotherModule extends Module implements ActionListener{ for (TouhouMotherCharacterData tmcd : characterDatabase) { tmcd.setCurrentDamage(0); } - try { - currentBoss.getFileManager().verifyAndFetchFileFromServer(); - bossImage = ImageIO.read(new File(sigIRC.BASEDIR+"Boss Sprites/"+currentBoss.getImage())); - } catch (IOException e) { - e.printStackTrace(); - } + currentBoss.getFileManager().verifyAndFetchFileFromServer(); + bossImage = sigIRC.readImage(sigIRC.BASEDIR+"Boss Sprites/"+currentBoss.getImage()); } } diff --git a/sigIRCv2/src/sig/modules/Twitch/FancyNumber.java b/sigIRCv2/src/sig/modules/Twitch/FancyNumber.java index 5a2df94..f4df45e 100644 --- a/sigIRCv2/src/sig/modules/Twitch/FancyNumber.java +++ b/sigIRCv2/src/sig/modules/Twitch/FancyNumber.java @@ -2,6 +2,7 @@ package sig.modules.Twitch; import java.awt.Color; import java.awt.Graphics; +import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; @@ -15,7 +16,7 @@ import sig.utils.DrawUtils; import sig.utils.TextUtils; public class FancyNumber { - BufferedImage icon; + Image icon; int displayedValue=0; int lastValue=0; int lastValueChange=0; @@ -25,11 +26,7 @@ public class FancyNumber { final static String ICONDIR = sigIRC.BASEDIR+"sigIRC/"; public FancyNumber(String icon_name, int startingValue) { - try { - icon = ImageIO.read(new File(ICONDIR+icon_name)); - } catch (IOException e) { - e.printStackTrace(); - } + icon = sigIRC.readImage(ICONDIR+icon_name); lastValue = startingValue; } @@ -53,7 +50,7 @@ public class FancyNumber { int xoffset = 0; int yoffset = 0; g.drawImage(icon, x, y, sigIRC.panel); - xoffset+=icon.getWidth()+4; + xoffset+=icon.getWidth(sigIRC.panel)+4; if (displayedValue!=lastValue) { if (delayCount==0) { int diff = Math.abs(displayedValue-lastValue); @@ -83,7 +80,7 @@ public class FancyNumber { lastValueChange--; g.drawImage((upArrow)?TwitchModule.UPARROWIMAGE:TwitchModule.DOWNARROWIMAGE, x+xoffset, y+yoffset, sigIRC.panel); } - xoffset+=((upArrow)?TwitchModule.UPARROWIMAGE.getWidth():TwitchModule.DOWNARROWIMAGE.getWidth())+4; + xoffset+=((upArrow)?TwitchModule.UPARROWIMAGE.getWidth(sigIRC.panel):TwitchModule.DOWNARROWIMAGE.getWidth(sigIRC.panel))+4; return new Rectangle(x,y,xoffset,yoffset+16); } } diff --git a/sigIRCv2/src/sig/modules/TwitchModule.java b/sigIRCv2/src/sig/modules/TwitchModule.java index 75084d2..09811c2 100644 --- a/sigIRCv2/src/sig/modules/TwitchModule.java +++ b/sigIRCv2/src/sig/modules/TwitchModule.java @@ -3,6 +3,7 @@ package sig.modules; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.Image; import java.awt.Rectangle; import java.awt.event.WindowEvent; import java.awt.geom.Rectangle2D; @@ -44,8 +45,8 @@ public class TwitchModule extends Module{ final public static String SOUNDSDIR = sigIRC.BASEDIR+"sigIRC/follower_sounds/"; final public static String FOLLOWERQUEUEFILE = USERDIR+"followers.txt"; public static boolean streamOnline = false; - static BufferedImage follower_img; - BufferedImage followerUserLogo; + static Image follower_img; + Image followerUserLogo; List follower_queue = new ArrayList(); final static int FOLLOWERCHECKTIMER = 900; int lastFollowerCheck=300; @@ -59,9 +60,9 @@ public class TwitchModule extends Module{ Date uptime = Calendar.getInstance().getTime(); String currentlyPlaying=" "; final public static int ARROWTIMER = 3000; - public static BufferedImage UPARROWIMAGE; - public static BufferedImage DOWNARROWIMAGE; - public static BufferedImage UPTIMEIMAGE; + public static Image UPARROWIMAGE; + public static Image DOWNARROWIMAGE; + public static Image UPTIMEIMAGE; public TwitchModule(Rectangle2D bounds, String moduleName) { this(bounds,moduleName,true); @@ -243,15 +244,10 @@ public class TwitchModule extends Module{ } private void InitializeImages() { - try { - follower_img = ImageIO.read(new File(sigIRC.BASEDIR+sigIRC.twitchmodule_follower_img)); - UPARROWIMAGE = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/icon_up_arrow.png")); - DOWNARROWIMAGE = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/icon_down_arrow.png")); - UPTIMEIMAGE = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/icon_uptime.png")); - //System.out.println("Initialized Follower Image successfully."); - } catch (IOException e) { - e.printStackTrace(); - } + follower_img = sigIRC.readImage(sigIRC.BASEDIR+sigIRC.twitchmodule_follower_img); + UPARROWIMAGE = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/icon_up_arrow.png"); + DOWNARROWIMAGE = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/icon_down_arrow.png"); + UPTIMEIMAGE = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/icon_uptime.png"); } private void CreateFollowerQueueLog() { @@ -429,7 +425,7 @@ public class TwitchModule extends Module{ private void DrawStatisticsBar(Graphics g) { g.setColor(new Color(25,25,25)); int xoffset = (int)position.getX()+4; - int yoffset = (int)(position.getY()+follower_img.getHeight()+sigIRC.twitchmodule_newfollowerImgLogoSize); + int yoffset = (int)(position.getY()+follower_img.getHeight(sigIRC.panel)+sigIRC.twitchmodule_newfollowerImgLogoSize); g.fillPolygon(new int[]{(int)position.getX(),(int)(position.getX()+position.getWidth()),(int)(position.getX()+position.getWidth()),(int)position.getX()}, new int[]{yoffset-4,yoffset-4,yoffset+16,yoffset+16}, 4); @@ -445,7 +441,7 @@ public class TwitchModule extends Module{ private Rectangle DrawUptime(Graphics g, int x, int y) { int xoffset = 0; int yoffset = 0; - g.drawImage(UPTIMEIMAGE, x+xoffset, y+yoffset-2, sigIRC.panel);xoffset+=UPTIMEIMAGE.getWidth()+4; + g.drawImage(UPTIMEIMAGE, x+xoffset, y+yoffset-2, sigIRC.panel);xoffset+=UPTIMEIMAGE.getWidth(sigIRC.panel)+4; String timediff = TimeUtils.GetTimeDifferenceFromCurrentDate(uptime); if (timediff.length()>0) { DrawUtils.drawTextFont(g, sigIRC.panel.userFont, x+xoffset, y+yoffset+TextUtils.calculateStringBoundsFont(timediff, sigIRC.panel.userFont).getHeight()/2+3,new Color(184,181,192),timediff);xoffset+=TextUtils.calculateStringBoundsFont(timediff, sigIRC.panel.userFont).getWidth()+12; @@ -463,7 +459,7 @@ public class TwitchModule extends Module{ : 0; final int canvasYOffset = (sigIRC.twitchmodule_follower_img_animation) - ? Math.min(follower_img.getHeight(),yAlteration) + ? Math.min(follower_img.getHeight(sigIRC.panel),yAlteration) : 0; final int xAlteration = (sigIRC.twitchmodule_follower_img_animation) @@ -471,13 +467,13 @@ public class TwitchModule extends Module{ : 0; final int canvasXOffset = (sigIRC.twitchmodule_follower_img_animation) - ? Math.min(follower_img.getWidth(),xAlteration) + ? Math.min(follower_img.getWidth(sigIRC.panel),xAlteration) : 0; //System.out.println(yAlteration); //g.drawImage(follower_img, (int)bounds.getX()+xAlteration, (int)bounds.getY()+yAlteration, sigIRC.panel); //g.drawImage(follower_img, (int)bounds.getX(), (int)bounds.getY(), , , sigIRC.panel) - g.drawImage(follower_img, (int)position.getX(), (int)position.getY()+canvasYOffset, (int)position.getX()+follower_img.getWidth()+canvasXOffset, (int)position.getY()+follower_img.getHeight(), - -xAlteration, 0, follower_img.getWidth(), follower_img.getHeight()-yAlteration, sigIRC.panel); + g.drawImage(follower_img, (int)position.getX(), (int)position.getY()+canvasYOffset, (int)position.getX()+follower_img.getWidth(sigIRC.panel)+canvasXOffset, (int)position.getY()+follower_img.getHeight(sigIRC.panel), + -xAlteration, 0, follower_img.getWidth(sigIRC.panel), follower_img.getHeight(sigIRC.panel)-yAlteration, sigIRC.panel); Rectangle2D usernameTextsize = TextUtils.calculateStringBoundsFont(announcedFollowerUser.getDisplayName(), sigIRC.panel.programFont); int textY = (int)position.getY()+sigIRC.twitchmodule_followerText_Y+yAlteration; int textX = (int)position.getX()+sigIRC.twitchmodule_followerText_centerX+xAlteration; @@ -488,13 +484,13 @@ public class TwitchModule extends Module{ if (followerUserLogo!=null) { final int image_size = sigIRC.twitchmodule_newfollowerImgLogoSize; int img_startx = (int)(position.getX()+position.getWidth()-ticksPassed*3-(image_size+4)); - int img_starty = (int)(position.getY()+follower_img.getHeight()+2-image_size/2); + int img_starty = (int)(position.getY()+follower_img.getHeight(sigIRC.panel)+2-image_size/2); //g.setColor(Color.BLACK); //g.drawRect(img_startx, img_starty, image_size, image_size); - g.drawImage(followerUserLogo, img_startx, img_starty, img_startx+image_size, img_starty+image_size, 0, 0, followerUserLogo.getWidth(), followerUserLogo.getHeight(), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerImgBackgroundColor), sigIRC.panel); + g.drawImage(followerUserLogo, img_startx, img_starty, img_startx+image_size, img_starty+image_size, 0, 0, followerUserLogo.getWidth(sigIRC.panel), followerUserLogo.getHeight(sigIRC.panel), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerImgBackgroundColor), sigIRC.panel); } if (announcedFollowerUser.getBio()!=null && announcedFollowerUser.getBio().length()>0) { - DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, position.getX()+position.getWidth()-ticksPassed*3, position.getY()+follower_img.getHeight()+2+8, 2, TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerTextColor), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerShadowTextColor), announcedFollowerUser.getBio()); + DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, position.getX()+position.getWidth()-ticksPassed*3, position.getY()+follower_img.getHeight(sigIRC.panel)+2+8, 2, TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerTextColor), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerShadowTextColor), announcedFollowerUser.getBio()); } } } diff --git a/sigIRCv2/src/sig/sigIRC.java b/sigIRCv2/src/sig/sigIRC.java index 9dd8009..fe92134 100644 --- a/sigIRCv2/src/sig/sigIRC.java +++ b/sigIRCv2/src/sig/sigIRC.java @@ -41,12 +41,14 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Image; import java.awt.Rectangle; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -159,6 +161,7 @@ public class sigIRC{ public static int lastSubEmoteUpdate = -1; public static boolean autoUpdateProgram = true; public static Image programIcon; + public static Image missingImage; public static int subchannelCount = 0; public static HashMap subchannelIds = new HashMap(); @@ -213,11 +216,11 @@ public class sigIRC{ touhoumothermodule_Y = config.getInteger("TOUHOUMOTHER_module_Y",312); touhoumothermodule_width = config.getInteger("TOUHOUMOTHER_module_width",320); touhoumothermodule_height = config.getInteger("TOUHOUMOTHER_module_height",312); - /*rabiribimodule_X = config.getInteger("RABIRIBI_module_X",0); + rabiribimodule_X = config.getInteger("RABIRIBI_module_X",0); rabiribimodule_Y = config.getInteger("RABIRIBI_module_Y",312); rabiribimodule_width = config.getInteger("RABIRIBI_module_width",320); rabiribimodule_height = config.getInteger("RABIRIBI_module_height",312); - rabiribimodule_enabled = config.getBoolean("Module_rabiribi_Enabled", false);*/ + rabiribimodule_enabled = config.getBoolean("Module_rabiribi_Enabled", false); rabiracemodule_X = config.getInteger("RABIRACE_module_X",0); rabiracemodule_Y = config.getInteger("RABIRACE_module_Y",312); rabiracemodule_width = config.getInteger("RABIRACE_module_width",320); @@ -276,10 +279,28 @@ public class sigIRC{ } private static void Initialize() { + programIcon = sigIRC.readImage(sigIRC.BASEDIR+"/sigIRC/sigIRCicon.png"); + + BufferedImage img = new BufferedImage(16,16,BufferedImage.TYPE_INT_ARGB); + + Graphics2D g = img.createGraphics(); + g.drawRect(0, 0, 15, 15); + g.drawLine(0, 0, 15, 15); + g.drawLine(0, 15, 15, 0); + missingImage = img; + } + + public static Image readImage(String file) { + Image img; try { - programIcon = ImageIO.read(new File(sigIRC.BASEDIR+"/sigIRC/sigIRCicon.png")); + img = ImageIO.read(new File(file)); } catch (IOException e) { - e.printStackTrace(); + return missingImage; + } + if (img!=null) { + return img; + } else { + return missingImage; } } @@ -362,12 +383,8 @@ public class sigIRC{ } private static void InitializeModules() { - try { - Module.IMG_DRAGBAR = ImageIO.read(new File(sigIRC.BASEDIR+"drag_bar.png")); - Module.MSG_SEPARATOR = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/message_separator.png")); - } catch (IOException e) { - e.printStackTrace(); - } + Module.IMG_DRAGBAR = sigIRC.readImage(sigIRC.BASEDIR+"drag_bar.png"); + Module.MSG_SEPARATOR = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/message_separator.png"); if (touhoumothermodule_enabled) { modules.add(new TouhouMotherModule( new Rectangle(touhoumothermodule_X,touhoumothermodule_Y,touhoumothermodule_width,touhoumothermodule_height),