JortDev

RSPeer API demonstration / sample script

Oct 9th, 2019
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 KB | None | 0 0
  1. package other;
  2.  
  3. import org.rspeer.runetek.adapter.component.InterfaceComponent;
  4. import org.rspeer.runetek.adapter.scene.Npc;
  5. import org.rspeer.runetek.adapter.scene.Pickable;
  6. import org.rspeer.runetek.adapter.scene.Player;
  7. import org.rspeer.runetek.adapter.scene.SceneObject;
  8. import org.rspeer.runetek.api.Game;
  9. import org.rspeer.runetek.api.commons.Time;
  10. import org.rspeer.runetek.api.component.GrandExchangeSetup;
  11. import org.rspeer.runetek.api.component.Interfaces;
  12. import org.rspeer.runetek.api.component.tab.*;
  13. import org.rspeer.runetek.api.scene.Npcs;
  14. import org.rspeer.runetek.api.scene.Pickables;
  15. import org.rspeer.runetek.api.scene.Players;
  16. import org.rspeer.runetek.api.scene.SceneObjects;
  17. import org.rspeer.runetek.event.listeners.RenderListener;
  18. import org.rspeer.runetek.event.listeners.TickListener;
  19. import org.rspeer.runetek.event.types.RenderEvent;
  20. import org.rspeer.runetek.event.types.TickEvent;
  21. import org.rspeer.script.Script;
  22. import org.rspeer.script.ScriptMeta;
  23. import org.rspeer.ui.Log;
  24.  
  25.  
  26. @ScriptMeta(developer = "Jort", name = "RSPeer Sample script", desc = "Sample script for RSPeer demonstrating the API.")
  27. public class BasicTestScript extends Script implements TickListener{ //you got a lot of listeners
  28.  
  29.     public RenderListener renderListener = this::onRenderEvent;
  30.     public int tickCounter = 0;
  31.  
  32.     @Override
  33.     public void onStart() { //does not require user to be logged in
  34.         Log.fine("Sample script started."); //can log to file
  35.         Game.getEventDispatcher().register(renderListener); //register this listener separately because of some conflict with tick listener
  36.     }
  37.  
  38.     public final int delay = 10;
  39.     @Override
  40.     public int loop() {
  41.         Log.info("Loop()");
  42.  
  43.         if(Players.getLocal().getTarget() == null){
  44.             Player player = Players.getNearest(player1 -> player1 != null); //use predicates aka conditions
  45.             if(player == null){
  46.                 return delay;
  47.             }
  48.             if(!player.interact("Follow")){
  49.                 return delay;
  50.             }
  51.             if(!Time.sleepUntil(() -> Players.getLocal().getTarget() != null, 2000)){
  52.                 return delay;
  53.             }
  54.         }
  55.  
  56.         Npc npc = Npcs.getNearest("Chicken");
  57.         SceneObject bank = SceneObjects.getNearest("Bank"); //everything is static, no need to pass script instance to other classes
  58.         Pickable groundItem = Pickables.getNearest("Bones");
  59.         Magic.Autocast.isSpellSelected(Spell.Modern.WATER_STRIKE);
  60.         GrandExchangeSetup.increasePrice(4);
  61.         Prayers.isActive(Prayer.THICK_SKIN);
  62.         Combat.getAttackStyle().equals(Combat.AttackStyle.DEFENSIVE);
  63.         Equipment.contains("Rune platebody");
  64.  
  65.         return 2000;
  66.     }
  67.  
  68.     @Override
  69.     public void onStop() {
  70.         Log.severe("Sample script stopped.");
  71.         Game.getEventDispatcher().deregister(renderListener);
  72.     }
  73.  
  74.     @Override
  75.     public void notify(TickEvent tickEvent) {
  76.         tickCounter++;
  77.     }
  78.  
  79.     public void onRenderEvent(RenderEvent renderEvent) {
  80.         renderEvent.getSource().drawString("Jort sample script", 10, 40);
  81.         renderEvent.getSource().drawString("Tick: " + tickCounter, 10, 60);
  82.         InterfaceComponent widget = Interfaces.getComponent(548, 40);
  83.         if(widget != null){
  84.             widget.draw(renderEvent.getSource());
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment