Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Script won't start?

Featured Replies

Shows up in list, doesn't start and there's nothing in the log. Any ideas? I've gone so far as to entirely remove the GUI and nothing changed.

import org.osbot.rs07.api.ui.RS2Widget;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.*;

import javax.swing.*;
import javax.swing.border.EmptyBorder;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

@ScriptManifest(author = "Reminiscence", name = "RGemCutter", info = "Cuts basic gems.", version = 1.0, logo = "")
public class GemCutter extends Script {

	int lvlUp = 0;
	int chisel = 1755;
	int sapphire = 1623;
	int emerald = 1621;
	int ruby = 1619;
	int diamond = 1617;

	public boolean usingSapphire, usingEmerald, usingRuby, usingDiamond;

	public int startCRAFTEXP;
	public long startTime;
	long runTime = System.currentTimeMillis() - startTime;
	RS2Widget w = widgets.get(309,2);

	GUI g = new GUI();
	private boolean guiWait = true;

	public void onStart() throws InterruptedException {
		startTime = System.currentTimeMillis();
		players.myPlayer();
		startCRAFTEXP = getSkills().getExperience(Skill.CRAFTING);

		g.setVisible(true);
		while(guiWait)
			try {
				sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}


	}



	@Override
	public int onLoop() throws InterruptedException {	
		if (!inventory.contains(sapphire) || !inventory.contains(emerald) || 
				!inventory.contains(ruby) || !inventory.contains(diamond)) {
			bank();
		}

		if (usingSapphire == true && inventory.contains(sapphire)) {
			cutSapphire();
		}

		if (usingEmerald == true && inventory.contains(emerald)) {
			cutEmerald();
		}

		if (usingRuby == true && inventory.contains(ruby)) {
			cutRuby();
		}

		if (usingDiamond == true && inventory.contains(diamond)) {
			cutDiamond();
		}
		return 0;
	}

	public boolean interactItems(String item1, String item2) throws InterruptedException	{
		if (inventory.getItem(item1).interact())	{
			sleep(700);
			return inventory.getItem(item2).interact(); //
		}
		return false;
	}

	void cutSapphire() throws InterruptedException {
		if (!players.myPlayer().isAnimating() && inventory.contains(sapphire) && inventory.contains(chisel)) {
			interactItems("Chisel", "Uncut sapphire");
			w.interact("Make all");
			sleep (800);
		}
	}

	void cutEmerald() throws InterruptedException {
		if (!players.myPlayer().isAnimating() && inventory.contains(emerald) && inventory.contains(chisel)) {
			interactItems("Chisel", "Uncut emerald");
			w.interact("Make all");
			sleep (800);
		}
	}

	void cutRuby() throws InterruptedException {
		if (!players.myPlayer().isAnimating() && inventory.contains(ruby) && inventory.contains(chisel)) {
			interactItems("Chisel", "Uncut ruby");
			w.interact("Make all");
			sleep (800);
		}
	}

	void cutDiamond() throws InterruptedException { 
		if (!players.myPlayer().isAnimating() && inventory.contains(diamond) && inventory.contains(chisel)) {
			interactItems("Chisel", "Uncut diamond");
			w.interact("Make all");
			sleep (800);
		}
	}

	void bank() throws InterruptedException {
		bank.open();
		sleep(1500);
		bank.depositAllExcept(chisel);
		sleep(1500);

		if (usingSapphire == true) {
			bank.withdraw(sapphire, 27);
			sleep(1500);
			bank.close();
			sleep(1500);
		}

		if (usingEmerald == true) {
			bank.withdraw(emerald, 27);
			sleep(1500);
			bank.close();
			sleep(1500);
		}

		if (usingRuby == true) {
			bank.withdraw(ruby, 27);
			sleep(1500);
			bank.close();
			sleep(1500);
		}

		if (usingDiamond == true) {
			bank.withdraw(diamond, 27);
			sleep(1500);
			bank.close();
			sleep(1500);
		}
	}

	@Override
	public void onPaint(Graphics2D g){

	}

	@Override
	public void onExit() throws InterruptedException {
		stop();
	}

	public class GUI extends JFrame {
		private static final long serialVersionUID = 1L;
		private JPanel contentPane;

		@SuppressWarnings({ "rawtypes", "unchecked" })
		public GUI() {
			setType(Type.UTILITY);
			setResizable(false);
			setAlwaysOnTop(true);
			setTitle("RGemCutter GUI");
			setBackground(Color.DARK_GRAY);
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			setBounds(100, 100, 217, 104);
			contentPane = new JPanel();
			contentPane.setBackground(Color.DARK_GRAY);
			contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
			setContentPane(contentPane);
			contentPane.setLayout(null);

			final JComboBox comboBox = new JComboBox();
			comboBox.setForeground(Color.BLACK);
			comboBox.setBackground(Color.DARK_GRAY);
			comboBox.setModel(new DefaultComboBoxModel(new String[] {"Sapphire", "Emerald", "Ruby", "Diamond"}));
			comboBox.setBounds(10, 11, 187, 20);
			contentPane.add(comboBox);

			JButton btnStart = new JButton("Start");
			btnStart.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					if (comboBox.getSelectedItem().equals("Sapphire")) {
						usingSapphire = true;
					}

					if (comboBox.getSelectedItem().equals("Emerald")) {
						usingEmerald = true;
					}

					if (comboBox.getSelectedItem().equals("Ruby")) {
						usingRuby = true;
					}

					if (comboBox.getSelectedItem().equals("Diamond")) {
						usingDiamond = true;
					}

					guiWait = false;
					dispose();
				}
			});
			btnStart.setBackground(Color.DARK_GRAY);
			btnStart.setForeground(Color.BLACK);
			btnStart.setBounds(10, 42, 187, 23);
			contentPane.add(btnStart);
		}
	}
}

Comment out all the lines in your onStart()

At the bottom add log("Running");

 

onStart() {

//code

//code

log("Running");

}

 

Then uncomment one by one, run the script every time.

When it doesn't print out, you've found the line that is wrong,

from there we can get started

long runTime = System.currentTimeMillis() - startTime;
RS2Widget w = widgets.get(309,2);

Set these 2 global variables to default ^

long runTime;
RS2Widget w;

Then do the same again, comment out everything in start(); again and see if it prints out now

public void onStart() throws InterruptedException {
		/*startTime = System.currentTimeMillis();
		players.myPlayer();
		startCRAFTEXP = getSkills().getExperience(Skill.CRAFTING);

		g.setVisible(true);
		while(guiWait)
			try {
				sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}*/
log("They see me loggin, they hatin");


	}

Edited by lisabe96

add a try-catch around all the content of your onStart method and print the exception

Edited by FrostBug

  • Author
long runTime = System.currentTimeMillis() - startTime;
RS2Widget w = widgets.get(309,2);

Set these 2 global variables to default ^

long runTime;
RS2Widget w;

Then do the same again, comment out everything in start(); again and see if it prints out now

public void onStart() throws InterruptedException {
		/*startTime = System.currentTimeMillis();
		players.myPlayer();
		startCRAFTEXP = getSkills().getExperience(Skill.CRAFTING);

		g.setVisible(true);
		while(guiWait)
			try {
				sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}*/
log("They see me loggin, they hatin");


	}

I had actually just commented out the widget and it started working, lol.

Thanks for the help :3

I had actually just commented out the widget and it started working, lol.

Thanks for the help :3

Yea you'll have to define the widget value later on when the script is initialized

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.