commit 511de720d381b07e38700cc713aa9e4ec473a22b Author: Akito123321 Date: Fri May 24 07:02:30 2024 +0200 first commit diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..f7e4a1d --- /dev/null +++ b/.classpath @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..a0957a3 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + macro + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..2f5cc74 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/Images/test.png b/Images/test.png new file mode 100644 index 0000000..4072c80 Binary files /dev/null and b/Images/test.png differ diff --git a/Traindata/eng.traineddata b/Traindata/eng.traineddata new file mode 100644 index 0000000..f4744c2 Binary files /dev/null and b/Traindata/eng.traineddata differ diff --git a/Traindata/tessdata/configs/alto b/Traindata/tessdata/configs/alto new file mode 100644 index 0000000..0dd12a7 --- /dev/null +++ b/Traindata/tessdata/configs/alto @@ -0,0 +1 @@ +tessedit_create_alto 1 diff --git a/Traindata/tessdata/configs/api_config b/Traindata/tessdata/configs/api_config new file mode 100644 index 0000000..5cd6ec0 --- /dev/null +++ b/Traindata/tessdata/configs/api_config @@ -0,0 +1 @@ +tessedit_zero_rejection T diff --git a/Traindata/tessdata/configs/bazaar b/Traindata/tessdata/configs/bazaar new file mode 100644 index 0000000..1b2ee83 --- /dev/null +++ b/Traindata/tessdata/configs/bazaar @@ -0,0 +1,4 @@ +load_system_dawg F +load_freq_dawg F +user_words_suffix user-words +user_patterns_suffix user-patterns diff --git a/Traindata/tessdata/configs/digits b/Traindata/tessdata/configs/digits new file mode 100644 index 0000000..6a329f8 --- /dev/null +++ b/Traindata/tessdata/configs/digits @@ -0,0 +1 @@ +tessedit_char_whitelist 0123456789-. diff --git a/Traindata/tessdata/configs/hocr b/Traindata/tessdata/configs/hocr new file mode 100644 index 0000000..5ab372e --- /dev/null +++ b/Traindata/tessdata/configs/hocr @@ -0,0 +1,2 @@ +tessedit_create_hocr 1 +hocr_font_info 0 diff --git a/Traindata/tessdata/configs/lstmbox b/Traindata/tessdata/configs/lstmbox new file mode 100644 index 0000000..a6f2ced --- /dev/null +++ b/Traindata/tessdata/configs/lstmbox @@ -0,0 +1 @@ +tessedit_create_lstmbox 1 diff --git a/Traindata/tessdata/configs/pdf b/Traindata/tessdata/configs/pdf new file mode 100644 index 0000000..59645d7 --- /dev/null +++ b/Traindata/tessdata/configs/pdf @@ -0,0 +1 @@ +tessedit_create_pdf 1 diff --git a/Traindata/tessdata/configs/quiet b/Traindata/tessdata/configs/quiet new file mode 100644 index 0000000..35b59a9 --- /dev/null +++ b/Traindata/tessdata/configs/quiet @@ -0,0 +1 @@ +debug_file /dev/null diff --git a/Traindata/tessdata/configs/tsv b/Traindata/tessdata/configs/tsv new file mode 100644 index 0000000..dc52478 --- /dev/null +++ b/Traindata/tessdata/configs/tsv @@ -0,0 +1 @@ +tessedit_create_tsv 1 diff --git a/Traindata/tessdata/configs/txt b/Traindata/tessdata/configs/txt new file mode 100644 index 0000000..5046f0b --- /dev/null +++ b/Traindata/tessdata/configs/txt @@ -0,0 +1,3 @@ +# This config file should be used with other cofig files which creates renderers. +# usage example: tesseract eurotext.tif eurotext txt hocr pdf +tessedit_create_txt 1 diff --git a/Traindata/tessdata/configs/unlv b/Traindata/tessdata/configs/unlv new file mode 100644 index 0000000..d2e22f5 --- /dev/null +++ b/Traindata/tessdata/configs/unlv @@ -0,0 +1,2 @@ +tessedit_write_unlv 1 +unlv_tilde_crunching T diff --git a/Traindata/tessdata/configs/wordstrbox b/Traindata/tessdata/configs/wordstrbox new file mode 100644 index 0000000..38cd41c --- /dev/null +++ b/Traindata/tessdata/configs/wordstrbox @@ -0,0 +1 @@ +tessedit_create_wordstrbox 1 diff --git a/Traindata/tessdata/eng.traineddata b/Traindata/tessdata/eng.traineddata new file mode 100644 index 0000000..bbef467 Binary files /dev/null and b/Traindata/tessdata/eng.traineddata differ diff --git a/Traindata/tessdata/osd.traineddata b/Traindata/tessdata/osd.traineddata new file mode 100644 index 0000000..527457c Binary files /dev/null and b/Traindata/tessdata/osd.traineddata differ diff --git a/Traindata/tessdata/pdf.ttf b/Traindata/tessdata/pdf.ttf new file mode 100644 index 0000000..8affa23 Binary files /dev/null and b/Traindata/tessdata/pdf.ttf differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..0c08a04 --- /dev/null +++ b/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + me.akito123321.macro + macro + 0.0.1-SNAPSHOT + + + + net.sourceforge.tess4j + tess4j + 5.11.0 + + + + net.java.dev.jna + jna + 5.14.0 + + + + net.java.dev.jna + jna-platform + 5.14.0 + + + \ No newline at end of file diff --git a/src/main/java/macro/EnumerateWindows.java b/src/main/java/macro/EnumerateWindows.java new file mode 100644 index 0000000..ed9605b --- /dev/null +++ b/src/main/java/macro/EnumerateWindows.java @@ -0,0 +1,49 @@ +package macro; + +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import com.sun.jna.platform.win32.WinDef.HWND; +import com.sun.jna.platform.win32.WinDef.LPARAM; +import com.sun.jna.platform.win32.WinDef.LRESULT; +import com.sun.jna.platform.win32.WinDef.WPARAM; +import com.sun.jna.ptr.PointerByReference; + +public class EnumerateWindows { + + static class Psapi { + static { + Native.register("psapi"); + } + + public static native int GetModuleBaseNameW(Pointer hProcess, Pointer hmodule, char[] lpBaseName, int size); + } + + static class Kernel32 { + static { + Native.register("kernel32"); + } + public static int PROCESS_QUERY_INFORMATION = 0x0400; + public static int PROCESS_VM_READ = 0x0010; + + public static native int GetLastError(); + + public static native Pointer OpenProcess(int dwDesiredAccess, boolean bInheritHandle, Pointer pointer); + } + + static class User32DLL { + static { + Native.register("user32"); + } + + public static native int GetWindowThreadProcessId(HWND hWnd, PointerByReference pref); + + public static native HWND GetForegroundWindow(); + + public static native int GetWindowTextW(HWND hWnd, char[] lpString, int nMaxCount); + +// public static native List GetAllWindows(boolean onlyVisibleWindows); + + public static native LRESULT SendMessageA(HWND hWnd, int msg, WPARAM wParam, LPARAM lParam); + + } +} diff --git a/src/main/java/macro/Input.java b/src/main/java/macro/Input.java new file mode 100644 index 0000000..c1b8a2b --- /dev/null +++ b/src/main/java/macro/Input.java @@ -0,0 +1,70 @@ +package macro; + +//import static macro.EnumerateWindows.User32DLL.GetAllWindows; +import static macro.EnumerateWindows.User32DLL.SendMessageA; + +import java.awt.AWTException; +import java.awt.Robot; +import java.awt.event.KeyEvent; + +import com.sun.jna.platform.DesktopWindow; +import com.sun.jna.platform.WindowUtils; +import com.sun.jna.platform.win32.WinDef.LPARAM; +import com.sun.jna.platform.win32.WinDef.WPARAM; +import com.sun.jna.platform.win32.WinUser; + +public class Input { + + public static void press(char c, int timeInMs) { + Robot robot; + try { + robot = new Robot(); + robot.keyPress(KeyEvent.getExtendedKeyCodeForChar(c)); + robot.delay(timeInMs); + robot.keyRelease(KeyEvent.getExtendedKeyCodeForChar(c)); + } catch (AWTException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static void press(char c) { + Robot robot; + try { + robot = new Robot(); + robot.keyPress(KeyEvent.getExtendedKeyCodeForChar(c)); + robot.delay(100); + robot.keyRelease(KeyEvent.getExtendedKeyCodeForChar(c)); + } catch (AWTException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static void press(char c, int timeInMs, String windowName) { + DesktopWindow window = WindowUtils.getAllWindows(true).stream() + .filter(w -> w.getTitle().toLowerCase().contains(windowName.toLowerCase())).findFirst().get(); + System.out.println(SendMessageA(window.getHWND(), WinUser.WM_KEYDOWN, new WPARAM(c), new LPARAM(0))); + try { + Thread.sleep(timeInMs); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + SendMessageA(window.getHWND(), WinUser.WM_KEYUP, new WPARAM(c), new LPARAM(0)); + } + + public static void press(char c, String windowName) { + DesktopWindow window = WindowUtils.getAllWindows(true).stream() + .filter(w -> w.getTitle().toLowerCase().contains(windowName.toLowerCase())).findFirst().get(); + + SendMessageA(window.getHWND(), WinUser.WM_KEYDOWN, new WPARAM(c), new LPARAM(0)); + try { + Thread.sleep(100); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + SendMessageA(window.getHWND(), WinUser.WM_KEYUP, new WPARAM(c), new LPARAM(0)); + } +} diff --git a/src/main/java/macro/Main.java b/src/main/java/macro/Main.java new file mode 100644 index 0000000..a5c9d5b --- /dev/null +++ b/src/main/java/macro/Main.java @@ -0,0 +1,92 @@ +package macro; + +import java.awt.Dimension; +import java.awt.MouseInfo; +import java.awt.Point; +import java.io.IOException; +import java.util.List; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.Timer; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; + +public class Main { + + static JLabel label = new JLabel("sus"); + static JFrame frame = new JFrame("Macro"); + + public static void main(String[] args) throws IOException, InterruptedException { + + javax.swing.SwingUtilities.invokeLater(new Runnable() { + public void run() { + createAndShowGUI(); + } + }); + + new Thread(() -> { + // System.out.println(Text.getFromSquare(0, 0, 2560, 1440)); + List intrestedPokemon = List.of("Stunky", "Muk", "Smeargle", "Stantler", "Magikarp"); + while (true) { + if (Window.isFocused("proclient")) { +// Input.press('a', 600); +// Input.press('d', 600); + String foundText = Text.getFromSquare(1200, 500, 1450, 540).trim(); + if (!contains(intrestedPokemon, foundText) && foundText.toLowerCase().contains("wild")) { + Input.press('4'); +// Input.press('1'); + }else if(contains(intrestedPokemon, foundText)) { + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Input.press('3'); + Input.press('1'); + }else { + Input.press('3'); + } + System.out.println(foundText); + } + } + }).run(); + } + + private static void createAndShowGUI() { + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException + | UnsupportedLookAndFeelException ex) { + ex.printStackTrace(); + } + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.addWindowListener(new java.awt.event.WindowAdapter() { + @Override + public void windowClosing(java.awt.event.WindowEvent windowEvent) { + System.exit(0); + } + }); + + frame.getContentPane().add(label); + Timer timer = new Timer(100, e -> { + Point p = MouseInfo.getPointerInfo().getLocation(); + label.setText(p.x + "/" + p.y); + }); + timer.start(); + + // Display the window. + frame.setMinimumSize(new Dimension(500, 300)); + frame.pack(); + frame.setVisible(true); + } + + private static boolean contains(List pokemonWant, String pokemonFound) { + for (String s : pokemonWant) { + if (pokemonFound.toLowerCase().contains(s.toLowerCase())) + return true; + } + return false; + } +} diff --git a/src/main/java/macro/Text.java b/src/main/java/macro/Text.java new file mode 100644 index 0000000..c8cdea4 --- /dev/null +++ b/src/main/java/macro/Text.java @@ -0,0 +1,32 @@ +package macro; + +import java.awt.AWTException; +import java.awt.Rectangle; +import java.awt.Robot; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; + +import net.sourceforge.tess4j.Tesseract; +import net.sourceforge.tess4j.TesseractException; + +public class Text { + public static String getFromSquare(int left, int top, int right, int bottom) { + BufferedImage bImage; + try { + Robot robot = new Robot(); + Tesseract t = new Tesseract(); + bImage = robot.createScreenCapture(new Rectangle(left, top, + Math.abs(left - right), Math.abs(top - bottom))); +// ImageIO.write(bImage, "PNG", new File("Images/test.png")); + t.setVariable("load_freq_dawg", "false"); + t.setVariable("load_system_dawg", "false"); + return t.doOCR(bImage); + } catch (AWTException | TesseractException e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/src/main/java/macro/Window.java b/src/main/java/macro/Window.java new file mode 100644 index 0000000..d46d965 --- /dev/null +++ b/src/main/java/macro/Window.java @@ -0,0 +1,24 @@ +package macro; + +import static macro.EnumerateWindows.User32DLL.GetForegroundWindow; +import static macro.EnumerateWindows.User32DLL.GetWindowTextW; + +import com.sun.jna.Native; + +public class Window { + + private static final int MAX_TITLE_LENGTH = 1024; + public static boolean isFocused(String windowName) { + return getFocusedWindow().toLowerCase().equals(windowName.toLowerCase()); + } + + public static boolean isFocusedNoFullName(String windowName) { + return getFocusedWindow().toLowerCase().contains(windowName.toLowerCase()); + } + + public static String getFocusedWindow() { + char[] buffer = new char[MAX_TITLE_LENGTH * 2]; + GetWindowTextW(GetForegroundWindow(), buffer, MAX_TITLE_LENGTH); + return Native.toString(buffer).toLowerCase(); + } +} diff --git a/src/main/java/ui/MoveMouseListener.java b/src/main/java/ui/MoveMouseListener.java new file mode 100644 index 0000000..9fbde4c --- /dev/null +++ b/src/main/java/ui/MoveMouseListener.java @@ -0,0 +1,11 @@ +package ui; + +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +public class MoveMouseListener extends MouseAdapter { + @Override + public void mouseMoved(MouseEvent e) { + + } +} diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9bdf3b1 --- /dev/null +++ b/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Build-Jdk-Spec: 21 +Created-By: Maven Integration for Eclipse + diff --git a/target/classes/META-INF/maven/me.akito123321.macro/macro/pom.properties b/target/classes/META-INF/maven/me.akito123321.macro/macro/pom.properties new file mode 100644 index 0000000..bd5741d --- /dev/null +++ b/target/classes/META-INF/maven/me.akito123321.macro/macro/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu May 23 23:10:46 CEST 2024 +artifactId=macro +groupId=me.akito123321.macro +m2e.projectLocation=C\:\\Users\\ronny\\eclipse-workspace\\macro +m2e.projectName=macro +version=0.0.1-SNAPSHOT diff --git a/target/classes/META-INF/maven/me.akito123321.macro/macro/pom.xml b/target/classes/META-INF/maven/me.akito123321.macro/macro/pom.xml new file mode 100644 index 0000000..0c08a04 --- /dev/null +++ b/target/classes/META-INF/maven/me.akito123321.macro/macro/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + me.akito123321.macro + macro + 0.0.1-SNAPSHOT + + + + net.sourceforge.tess4j + tess4j + 5.11.0 + + + + net.java.dev.jna + jna + 5.14.0 + + + + net.java.dev.jna + jna-platform + 5.14.0 + + + \ No newline at end of file diff --git a/target/classes/macro/EnumerateWindows$Kernel32.class b/target/classes/macro/EnumerateWindows$Kernel32.class new file mode 100644 index 0000000..e505b6c Binary files /dev/null and b/target/classes/macro/EnumerateWindows$Kernel32.class differ diff --git a/target/classes/macro/EnumerateWindows$Psapi.class b/target/classes/macro/EnumerateWindows$Psapi.class new file mode 100644 index 0000000..b4a4249 Binary files /dev/null and b/target/classes/macro/EnumerateWindows$Psapi.class differ diff --git a/target/classes/macro/EnumerateWindows$User32DLL.class b/target/classes/macro/EnumerateWindows$User32DLL.class new file mode 100644 index 0000000..a456e58 Binary files /dev/null and b/target/classes/macro/EnumerateWindows$User32DLL.class differ diff --git a/target/classes/macro/EnumerateWindows.class b/target/classes/macro/EnumerateWindows.class new file mode 100644 index 0000000..24fe525 Binary files /dev/null and b/target/classes/macro/EnumerateWindows.class differ diff --git a/target/classes/macro/Input.class b/target/classes/macro/Input.class new file mode 100644 index 0000000..bb3d1f7 Binary files /dev/null and b/target/classes/macro/Input.class differ diff --git a/target/classes/macro/Main$1.class b/target/classes/macro/Main$1.class new file mode 100644 index 0000000..022bab4 Binary files /dev/null and b/target/classes/macro/Main$1.class differ diff --git a/target/classes/macro/Main$2.class b/target/classes/macro/Main$2.class new file mode 100644 index 0000000..579e34b Binary files /dev/null and b/target/classes/macro/Main$2.class differ diff --git a/target/classes/macro/Main.class b/target/classes/macro/Main.class new file mode 100644 index 0000000..0c80b78 Binary files /dev/null and b/target/classes/macro/Main.class differ diff --git a/target/classes/macro/Text.class b/target/classes/macro/Text.class new file mode 100644 index 0000000..5a0df1a Binary files /dev/null and b/target/classes/macro/Text.class differ diff --git a/target/classes/macro/Window.class b/target/classes/macro/Window.class new file mode 100644 index 0000000..4eb4859 Binary files /dev/null and b/target/classes/macro/Window.class differ diff --git a/target/classes/ui/MoveMouseListener.class b/target/classes/ui/MoveMouseListener.class new file mode 100644 index 0000000..bf6e6d2 Binary files /dev/null and b/target/classes/ui/MoveMouseListener.class differ