diff --git a/.idea/misc.xml b/.idea/misc.xml index 4b661a5..803a716 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/Cache/sound0.wav b/Cache/sound0.wav index 80bf91c..e5a7222 100644 Binary files a/Cache/sound0.wav and b/Cache/sound0.wav differ diff --git a/Cache/sound1.wav b/Cache/sound1.wav index 80bf91c..e5a7222 100644 Binary files a/Cache/sound1.wav and b/Cache/sound1.wav differ diff --git a/Cache/sound2.wav b/Cache/sound2.wav index 80bf91c..e5a7222 100644 Binary files a/Cache/sound2.wav and b/Cache/sound2.wav differ diff --git a/Cache/sound3.wav b/Cache/sound3.wav index 80bf91c..e5a7222 100644 Binary files a/Cache/sound3.wav and b/Cache/sound3.wav differ diff --git a/Cache/sound4.wav b/Cache/sound4.wav index 80bf91c..e5a7222 100644 Binary files a/Cache/sound4.wav and b/Cache/sound4.wav differ diff --git a/pom.xml b/pom.xml index d979ecb..d95a523 100644 --- a/pom.xml +++ b/pom.xml @@ -13,6 +13,7 @@ 1.8 + com.github.insubstantial @@ -35,6 +36,18 @@ 1.6 + + org.ow2.asm + asm + 7.2 + + + + org.ow2.asm + asm-tree + 7.2 + + diff --git a/src/main/java/org/rebotted/archive/ASMClassLoader.java b/src/main/java/org/rebotted/archive/ASMClassLoader.java index 08055ce..5c616f8 100644 --- a/src/main/java/org/rebotted/archive/ASMClassLoader.java +++ b/src/main/java/org/rebotted/archive/ASMClassLoader.java @@ -1,8 +1,8 @@ package org.rebotted.archive; -import jdk.internal.org.objectweb.asm.ClassWriter; -import jdk.internal.org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.tree.ClassNode; import java.net.MalformedURLException; import java.net.URL; diff --git a/src/main/java/org/rebotted/archive/ClassArchive.java b/src/main/java/org/rebotted/archive/ClassArchive.java index b83ea8b..2b1718c 100644 --- a/src/main/java/org/rebotted/archive/ClassArchive.java +++ b/src/main/java/org/rebotted/archive/ClassArchive.java @@ -1,8 +1,8 @@ package org.rebotted.archive; -import jdk.internal.org.objectweb.asm.ClassReader; -import jdk.internal.org.objectweb.asm.ClassWriter; -import jdk.internal.org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.tree.ClassNode; import org.rebotted.directory.DirectoryManager; import java.io.*; diff --git a/src/main/java/org/rebotted/bot/loader/APILoader.java b/src/main/java/org/rebotted/bot/loader/APILoader.java index 788f385..797312b 100644 --- a/src/main/java/org/rebotted/bot/loader/APILoader.java +++ b/src/main/java/org/rebotted/bot/loader/APILoader.java @@ -1,7 +1,7 @@ package org.rebotted.bot.loader; -import jdk.internal.org.objectweb.asm.tree.AnnotationNode; -import jdk.internal.org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.AnnotationNode; +import org.objectweb.asm.tree.ClassNode; import org.rebotted.Client; import org.rebotted.archive.ASMClassLoader; import org.rebotted.archive.ClassArchive; diff --git a/src/main/java/org/rebotted/ui/BotFrame.java b/src/main/java/org/rebotted/ui/BotFrame.java index fe7f9b2..cbedd4a 100644 --- a/src/main/java/org/rebotted/ui/BotFrame.java +++ b/src/main/java/org/rebotted/ui/BotFrame.java @@ -4,8 +4,9 @@ import org.rebotted.Client; import org.rebotted.Configuration; import org.rebotted.GameApplet; import org.rebotted.script.ScriptHandler; +import org.rebotted.script.loader.ScriptLoader; import org.rebotted.ui.menu.BotMenuBar; -import org.rebotted.ui.script.ScriptUI; +import org.rebotted.ui.script.ScriptSelector; import javax.swing.*; import java.awt.*; @@ -18,7 +19,6 @@ public final class BotFrame extends JFrame implements ActionListener { private static BotMenuBar botMenuBar; private final Client client; - private final ScriptUI scriptUI; public BotFrame(Client client, boolean resizable) { this.client = client; @@ -38,7 +38,6 @@ public final class BotFrame extends JFrame implements ActionListener { requestFocus(); toFront(); applet.initClientFrame(766, 536); - scriptUI = new ScriptUI(client.getApiData()); System.out.println("Client Launched."); } @@ -65,7 +64,7 @@ public final class BotFrame extends JFrame implements ActionListener { switch (e.getActionCommand().toLowerCase()) { case "run": if (ScriptHandler.getInstance().getScriptState() == ScriptHandler.State.STOPPED) { - scriptUI.show(); + new ScriptSelector(new ScriptLoader(client.getApiData())); } else if (ScriptHandler.getInstance().getScriptState() == ScriptHandler.State.PAUSE) { ScriptHandler.getInstance().setScriptState(ScriptHandler.State.RUNNING); setRunning(); diff --git a/src/main/java/org/rebotted/ui/script/ScriptController.java b/src/main/java/org/rebotted/ui/script/ScriptController.java deleted file mode 100644 index 913c42d..0000000 --- a/src/main/java/org/rebotted/ui/script/ScriptController.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.rebotted.ui.script; - -import javafx.fxml.FXML; -import javafx.fxml.Initializable; -import javafx.scene.control.Button; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.control.cell.PropertyValueFactory; -import org.rebotted.script.ScriptHandler; -import org.rebotted.script.scriptdata.ScriptData; -import org.rebotted.script.scriptdata.SkillCategory; -import org.rebotted.script.types.Script; -import org.rebotted.ui.BotFrame; - - -import java.net.URL; -import java.util.ResourceBundle; - -public class ScriptController implements Initializable { - - @FXML - private Button startButton; - - @FXML - private TableView scriptTable; - - @FXML - private TableColumn category; - - @FXML - private TableColumn scriptName; - - @FXML - private TableColumn author; - - @FXML - private TableColumn description; - - @FXML - private TableColumn version; - - public void startScript() { - if (ScriptHandler.getInstance().getScriptState() == ScriptHandler.State.PAUSE) { - ScriptHandler.getInstance().pause(); - } else if (ScriptHandler.getInstance().getScriptState() == ScriptHandler.State.STOPPED) { - final ScriptData scriptData = scriptTable.getSelectionModel().getSelectedItem(); - if(scriptData == null) { - System.err.println("Please select a script before pressing start!"); - return; - } - startScript(scriptData); - ScriptUI.hide(); - BotFrame.setRunning(); - } else if (ScriptHandler.getInstance().getScriptState() == ScriptHandler.State.RUNNING) { - System.out.println("You already have a script running!"); - } - } - - public void searchScripts() { - - } - - public TableView getScriptTable() { - return scriptTable; - } - - @Override - public void initialize(URL location, ResourceBundle resources) { - category.setCellValueFactory(new PropertyValueFactory<>("skillCategory")); - - scriptName.setCellValueFactory(new PropertyValueFactory<>("name")); - - author.setCellValueFactory(new PropertyValueFactory<>("author")); - - description.setCellValueFactory(new PropertyValueFactory<>("desc")); - - version.setCellValueFactory(new PropertyValueFactory<>("version")); - - } - - private void startScript(ScriptData scriptData) { - Script script = null; - try { - script = (Script) scriptData.getMainClass().newInstance(); - } catch (Exception e) { - e.printStackTrace(); - } - ScriptHandler.getInstance().start(script, scriptData); - } -} diff --git a/src/main/java/org/rebotted/ui/script/ScriptPanel.java b/src/main/java/org/rebotted/ui/script/ScriptPanel.java new file mode 100644 index 0000000..79844a1 --- /dev/null +++ b/src/main/java/org/rebotted/ui/script/ScriptPanel.java @@ -0,0 +1,36 @@ +package org.rebotted.ui.script; + +import org.rebotted.script.scriptdata.ScriptData; + +import javax.swing.*; +import javax.swing.border.EtchedBorder; +import java.awt.*; + +public class ScriptPanel extends JPanel { + + private static final long serialVersionUID = -5181188196122580695L; + private JButton button; + + public ScriptPanel(final ScriptData scriptData) { + setLayout(new BorderLayout()); + + setToolTipText(scriptData.getDesc()); + + button = new JButton("Start"); + + add(button, BorderLayout.SOUTH); + + final JLabel scriptName = new JLabel(scriptData.getName()); + + scriptName.setHorizontalAlignment(JLabel.CENTER); + + add(scriptName, BorderLayout.NORTH); + + setBorder(new EtchedBorder()); + } + + public JButton getButton() { + return button; + } + +} \ No newline at end of file diff --git a/src/main/java/org/rebotted/ui/script/ScriptSelector.java b/src/main/java/org/rebotted/ui/script/ScriptSelector.java new file mode 100644 index 0000000..d82afb9 --- /dev/null +++ b/src/main/java/org/rebotted/ui/script/ScriptSelector.java @@ -0,0 +1,125 @@ +package org.rebotted.ui.script; + +import org.rebotted.script.ScriptHandler; +import org.rebotted.script.loader.ScriptLoader; +import org.rebotted.script.scriptdata.ScriptData; +import org.rebotted.script.types.Script; +import org.rebotted.ui.BotFrame; +import org.rebotted.ui.menu.BotMenuBar; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +public class ScriptSelector extends JFrame { + + + private static final long serialVersionUID = 1L; + private final ScriptLoader scriptLoader; + private JTextField searchField; + private JComboBox accounts; + private JPanel topPanel; + private JPanel scriptPanel; + private JScrollPane scrollPane; + + public ScriptSelector(ScriptLoader scriptLoader) { + super("Script Selector"); + this.scriptLoader = scriptLoader; + setResizable(false); + searchField = new JTextField(20); + searchField.setForeground(Color.LIGHT_GRAY); + searchField.setText("Search"); + searchField.setMaximumSize(new Dimension(100, 30)); + searchField.addFocusListener(new FocusAdapter() { + @Override + public void focusGained(FocusEvent e) { + super.focusGained(e); + searchField.setForeground(Color.BLACK); + searchField.setText(""); + } + + @Override + public void focusLost(FocusEvent e) { + super.focusLost(e); + searchField.setForeground(Color.LIGHT_GRAY); + searchField.setText("Search"); + } + }); + searchField.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + super.keyTyped(e); + } + }); + + accounts = new JComboBox<>(); + + + topPanel = new JPanel(); + topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS)); + topPanel.add(accounts); + topPanel.add(Box.createHorizontalGlue()); + topPanel.add(searchField); + + scriptPanel = new JPanel(); + scriptPanel.setLayout(null); + + scrollPane = new JScrollPane(scriptPanel); + scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + + getContentPane().setLayout(new BorderLayout()); + getContentPane().add(topPanel, BorderLayout.NORTH); + getContentPane().add(scrollPane, BorderLayout.CENTER); + + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + setSize(535, 405); + loadScripts(); + setVisible(true); + } + + + private void loadScripts() { + scriptPanel.removeAll(); + java.util.List scripts = scriptLoader.getScripts(); + + final int width = 170; + final int height = 115; + final int spacing = 3; + final int scriptPerRow = 3; + int realIndex = 0; + for (int scriptIndex = 0; scriptIndex < scripts.size(); scriptIndex++) { + final ScriptData scriptData = scripts.get(scriptIndex); + final ScriptPanel panel = new ScriptPanel(scriptData); + int col = realIndex / scriptPerRow; + int row = realIndex - (col * scriptPerRow); + int x = row * width + spacing; + int y = col * height + spacing; + panel.setBounds(x, y, width, height); + panel.getButton().addActionListener(e -> { + startScript(scriptData); + dispose(); + }); + scriptPanel.add(panel); + realIndex++; + } + searchField.setText(""); + scriptPanel.setPreferredSize(new Dimension(535, (int) (Math.ceil((Double.valueOf(scriptPanel.getComponentCount()) / 3.0)) * height))); + + } + + private void startScript(ScriptData scriptData) { + Script script = null; + try { + script = (Script) scriptData.getMainClass().newInstance(); + } catch (Exception e) { + e.printStackTrace(); + } + ScriptHandler.getInstance().start(script, scriptData); + BotFrame.setRunning(); + } +} diff --git a/src/main/java/org/rebotted/ui/script/ScriptUI.java b/src/main/java/org/rebotted/ui/script/ScriptUI.java deleted file mode 100644 index ba02deb..0000000 --- a/src/main/java/org/rebotted/ui/script/ScriptUI.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.rebotted.ui.script; - -import javafx.application.Platform; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.embed.swing.JFXPanel; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import org.rebotted.bot.data.APIData; -import org.rebotted.script.loader.ScriptLoader; -import org.rebotted.script.scriptdata.ScriptData; - - -import javax.swing.*; - - -public class ScriptUI { - private static ScriptController controller; - private static JFrame frame; - private JFXPanel jfxPanel = new JFXPanel(); - private ScriptLoader scriptLoader; - - public ScriptUI(final APIData apiData) { - scriptLoader = new ScriptLoader(apiData); - loadUI(); - } - - public static ScriptController getController() { - return controller; - } - - public void loadUI() { - Platform.runLater(() -> { - try { - frame = new JFrame("2006Rebotted - Script Selector"); - jfxPanel = new JFXPanel(); - final FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/ScriptUI.fxml")); - final Parent root = fxmlLoader.load(); - final Scene scene = new Scene(root, 597, 353); - scene.getStylesheets().add(getClass().getResource("/dark.css").toExternalForm()); - jfxPanel.setScene(scene); - controller = fxmlLoader.getController(); - controller.getScriptTable().setItems(loadLocalScripts()); - SwingUtilities.invokeLater(() -> { - frame.add(jfxPanel); - frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); - frame.pack(); - frame.setResizable(false); - }); - } catch (Exception e) { - - } - }); - } - - public void show() { - controller.getScriptTable().setItems(loadLocalScripts()); - frame.setVisible(true); - System.out.println("Script Selector Loaded."); - } - - public static void hide() { - frame.setVisible(false); - } - - private ObservableList loadLocalScripts() { - final ObservableList scripts = FXCollections.observableArrayList(); - for (ScriptData scriptData : scriptLoader.getScripts()) { - scripts.add(scriptData); - } - return scripts; - } -} diff --git a/src/main/resources/ScriptUI.fxml b/src/main/resources/ScriptUI.fxml deleted file mode 100644 index dd4a10f..0000000 --- a/src/main/resources/ScriptUI.fxml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - -