I made a thread asking for help yesterday and got the help, i'm unsure if I'm suppose to continue that thread or make a new one so I decided to make a new one. If this was wrong please tell me.
So I got two questions.
1. line 62 I get a warning with "getBank().depositAllExcept(axes -> axes.getName().contains(" axe"));" says multiple markers at this line. I can do "@SuppressWarnings("unchecked")" to remove that warning but I would rather see if it's something I need to get fixed and fix it the correct way. How would I do it?
2. I have read about a word I don't remember what it was but it had to do with splitting the script into smaller .java files I think and having like one Main one and then maybe one for Woodcutting, one for banking and one for paint.
I have no clue at all how to do this so if someone could link me a tutorial or try to explain this to me I would greatly appreciate that!
Thanks for all the help I can get!
package core;
import java.awt.Color;
import java.awt.Graphics2D;
//import java.awt.Image;
//import java.io.IOException;
//import java.net.URL;
import java.time.LocalTime;
import java.util.concurrent.TimeUnit;
//import javax.imageio.ImageIO;
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.map.constants.Banks;
import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import org.osbot.rs07.utility.ConditionalSleep;
@ScriptManifest(name = "Woodcutting", version = 1.0, author = "HeyImJamie", info = "", logo = "")
public class Main extends Script {
private long timeBegan;
private long timeRan;
private int beginningXp;
private int currentXp;
private int xpGained;
private int currentLevel;
private int beginningLevel;
private int levelsGained;
//private final Image bg = getImage("https://i.imgur.com/rgIR2OP.png");
@Override
public void onStart() {
timeBegan = System.currentTimeMillis();
beginningXp = skills.getExperience(Skill.WOODCUTTING);
beginningLevel = skills.getStatic(Skill.WOODCUTTING);
}
@Override
public int onLoop() throws InterruptedException {
if (shouldBank()) {
bank();
} else {
cutTree(getTreeName());
}
return 100;
}
private boolean shouldBank() {
return getInventory().isFull();
}
@SuppressWarnings("unchecked")
private void bank() throws InterruptedException {
if (!Banks.DRAYNOR.contains(myPlayer())) {
getWalking().webWalk(Banks.DRAYNOR);
} else {
if (!getBank().isOpen()) {
getBank().open();
} else {
getBank().depositAllExcept(axes -> axes.getName().contains(" axe"));
}
}
}
private void cutTree(String treeName) {
if (!getTreeArea().contains(myPlayer())) {
getWalking().webWalk(getTreeArea());
} else {
RS2Object tree = getObjects().closest(getTreeArea(), getTreeName());
if (!myPlayer().isAnimating() && tree != null) {
if (tree.interact("Chop down")) {
new ConditionalSleep(5000) {
@Override
public boolean condition() throws InterruptedException {
return myPlayer().isAnimating();
}
}.sleep();
}
}
}
}
private Area getTreeArea() {
if (getSkills().getDynamic(Skill.WOODCUTTING) >= 60) {
return new Area(3203, 3506, 3225, 3497);
} else {
return new Area(3091, 3239, 3076, 3230);
}
}
private String getTreeName() {
if (getSkills().getDynamic(Skill.WOODCUTTING) >= 60){
return "Yew";
} else if (getSkills().getDynamic(Skill.WOODCUTTING) >= 30){
return "Willow";
} else if (getSkills().getDynamic(Skill.WOODCUTTING) >= 15){
return "Oak";
} else {
return "Tree";
}
}
@Override
public void onPaint(Graphics2D g) {
g.setColor(Color.BLACK);
//background
//g.drawImage(bg, 26, 108, null);
//time
timeRan = System.currentTimeMillis() - this.timeBegan;
g.drawString("Run time: "+ft(timeRan), 390, 400);
//xp
currentXp = skills.getExperience(Skill.WOODCUTTING);
xpGained = currentXp - beginningXp;
g.drawString("Gained " + xpGained + " Xp", 390, 380);
//levels
currentLevel = skills.getStatic(Skill.WOODCUTTING);
levelsGained = currentLevel - beginningLevel;
g.drawString(beginningLevel + " / " + currentLevel + " ( +" + levelsGained + " )", 390, 360);
}
private String ft(long duration)
{
return LocalTime.ofSecondOfDay(TimeUnit.MILLISECONDS.toSeconds(duration)).toString();
}
/*private Image getImage(String url)
{
try
{
return ImageIO.read(new URL(url));
}
catch (IOException e) {}
return null;
}*/
}