TorRS Posted August 19, 2020 Share Posted August 19, 2020 When i start the script this error comes: [ERROR][Bot #1][08/19 08:04:33 PM]: Error in script executor! java.lang.NullPointerException at org.osbot.rs07.api.map.Area.contains(kn:165) at flourMaker.Grind.grinder(Grind.java:92) at flourMaker.Main.onLoop(Main.java:24) at org.osbot.rs07.event.ScriptExecutor$InternalExecutor.run(qn:254) at java.lang.Thread.run(Unknown Source) And as far as I understood it I have to do some sort of null check but dont know how to do it The code: package flourMaker; import org.osbot.rs07.api.Bank; import org.osbot.rs07.api.Inventory; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.api.model.Player; import org.osbot.rs07.script.MethodProvider; public class Grind extends MethodProvider{ final Area BANK_AREA = new Area(3183, 34405, 3185, 3444); final Area GUILD_TRAY = new Area(3142, 3449, 3146, 3446); final Area GUILD_HOPPER = new Area(3140, 3452, 3143, 3450).setPlane(2); final int BANK_BOTH_ID = 10583; final int GRAIN_ID = 1947; final String HOPPER_NAME = "Hopper"; final String CONTROLS_NAME = "Hopper controls"; boolean tray = false; boolean con = false; boolean shouldGrain; boolean finishedGrain; Inventory inv; Player player; Bank bank; public void starter() { exchangeContext(getBot()); inv = getInventory(); player = myPlayer(); bank = getBank(); } public void grinder() throws InterruptedException { if (inventory.isFull() && inventory.contains(GRAIN_ID)) { shouldGrain = true; } Entity hopper = getObjects().closest(HOPPER_NAME); Entity controller = getObjects().closest(CONTROLS_NAME); Entity bankbooth = getObjects().closest(BANK_BOTH_ID); if (shouldGrain) { if (GUILD_HOPPER.contains(player)) { if (inventory.contains(GRAIN_ID)) { if (!con) { if (hopper != null) { if (hopper.isVisible()) { if (!player.isAnimating()) { if (!player.isMoving()) { hopper.interact("Fill"); sleep(random(1500, 2000)); con = true; } } } else { getCamera().toEntity(hopper); } } } else { if (controller != null) { if (controller.isVisible()) { if (!player.isAnimating()) { if (!player.isMoving()) { controller.interact("Operate"); sleep(random(1500, 2000)); con = false; } } } } } } else { tray = true; shouldGrain = false; controller.interact("Operate"); sleep(random(1500, 2000)); } } else { getWalking().webWalk(GUILD_HOPPER); } } else { if (BANK_AREA.contains(player)) { if (bank.isOpen()) { bank.withdrawAll(GRAIN_ID); } else { if (bankbooth != null) { if (bankbooth.isVisible()) { bankbooth.interact("Bank"); sleep(random(2000, 3000)); } else { getCamera().toEntity(bankbooth); } } } } else { getWalking().webWalk(BANK_AREA); } } } } AS far as I understood it the problem is something to do with the areas but dont know what to do Quote Link to comment Share on other sites More sharing options...
Nbacon Posted August 19, 2020 Share Posted August 19, 2020 (edited) exchangeContext(getBot()); Is in script not the class itself. public class TopLevel extends Script { Grind grind; public void onStart() throws InterruptedException { grind = new Grind(); grind.exchangeContext(getBot()); grind.starter() ; ... } ... public class Grind extends MethodProvider{ ... public void starter() { inv = getInventory(); player = myPlayer(); bank = getBank(); } ... Edited August 19, 2020 by Nbacon 1 Quote Link to comment Share on other sites More sharing options...
TorRS Posted August 19, 2020 Author Share Posted August 19, 2020 9 minutes ago, Nbacon said: exchangeContext(getBot()); Is in script not the class itself. Did this and something else VERY important that i forgot is i forgot to "call" starter on the onStart function. *FACEPALM* thanks dude you helped me a lot today Quote Link to comment Share on other sites More sharing options...
Nbacon Posted August 19, 2020 Share Posted August 19, 2020 (edited) 1 minute ago, TorRS said: *FACEPALM* P.S. also move/remove the exchangeContext(getBot()); so its in the right place. Edited August 19, 2020 by Nbacon 1 Quote Link to comment Share on other sites More sharing options...
TorRS Posted August 19, 2020 Author Share Posted August 19, 2020 (edited) 32 minutes ago, Nbacon said: P.S. also move/remove the exchangeContext(getBot()); so its in the right place. oke, again thanks a lot sir Edited August 19, 2020 by TorRS Quote Link to comment Share on other sites More sharing options...