2013-12-06 2 views
1
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 

import org.powerbot.core.script.job.Task; 
import org.powerbot.core.script.job.state.Node; 
import org.powerbot.core.script.job.state.Tree; 
import org.powerbot.game.api.util.Timer; 

public abstract class ScriptWrapper extends org.powerbot.core.script.ActiveScript { 

    public final Timer runTime; 
    private Tree jobContainer = null; 
    private List<Node> jobs; 


    public ScriptWrapper() { 
     runTime = new Timer(0); 
     jobs = Collections.synchronizedList(new ArrayList<Node>()); 
    } 

    public final void provide(final Node job) { 
     if(!jobs.contains(job)) { 
      jobs.add(job); 
      jobContainer = new Tree(jobs.toArray(new Node[jobs.size()])); 
     } 
    } 

    public final void revoke(final Node job) { 
     if(jobs.contains(job)) { 
      jobs.remove(job); 
      jobContainer = new Tree(jobs.toArray(new Node[jobs.size()])); 
     } 
    } 

    public final void submit(final Task task) { 
     getContainer().submit(task); 
    } 

    public final ScriptWrapper getScriptWrapper() { 
     return this; 
    } 

    public abstract void onStart(); 

    @Override 
    public int loop(); { 
     if (jobContainer != null) { 
      final Node job = jobContainer.state(); 
      if (job != null) { 
       jobContainer.set(job); 
       getContainer().submit(job); 
       job.join(); 
      } 
     } 
     return 0; 
    } 

} 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Point; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.LinkedList; 
import java.util.regex.Pattern; 

import org.powerbot.core.event.listeners.PaintListener; 
import org.powerbot.core.script.job.state.Node; 
import org.powerbot.game.api.Manifest; 
import org.powerbot.game.api.methods.Widgets; 
import org.powerbot.game.api.methods.input.Mouse; 
import org.powerbot.game.api.methods.interactive.Players; 
import org.powerbot.game.api.methods.node.GroundItems; 
import org.powerbot.game.api.methods.node.Menu; 
import org.powerbot.game.api.util.Filter; 
import org.powerbot.game.api.util.Random; 
import org.powerbot.game.api.util.Timer; 
import org.powerbot.game.api.util.node.Deque; 
import org.powerbot.game.api.util.node.Queue; 
import org.powerbot.game.api.wrappers.Tile; 
import org.powerbot.game.api.wrappers.interactive.Player; 
import org.powerbot.game.api.wrappers.node.GroundItem; 
import org.powerbot.game.bot.Context; 
import org.powerbot.game.client.Client; 
import org.powerbot.game.client.MenuGroupNode; 
import org.powerbot.game.client.MenuItemNode; 
import org.powerbot.game.client.NodeDeque; 
import org.powerbot.game.client.NodeSubQueue; 


@Manifest(authors = { "Cup" }, name = "c[DropParty]") 
public class DropParty extends ScriptWrapper implements PaintListener { 
    private ArrayList<Tile> locations = new ArrayList<Tile>(); 
    private ArrayList<Long> times = new ArrayList<Long>(); 
    private Timer timer = new Timer(0); 
    private Player player; 

    @Override 
    public void onStart() { 
     provide(new VexillumCloser()); 
     provide(new StatueCloser()); 
     provide(new Walk()); 
     provide(new Pickup()); 
     provide(new Tracking()); 
    } 
    private class VexillumCloser extends Node { 
     @Override 
     public boolean activate() { 
      return Widgets.get(1107, 156).validate(); 
     } 
     @Override 
     public void execute() { 
      Mouse.hop((int) Widgets.get(1107, 156).getBoundingRectangle().getCenterX(), (int) Widgets.get(1107, 156).getBoundingRectangle().getCenterY()); 
      Mouse.click(true); 
     } 
    } 
    private class StatueCloser extends Node { 
     @Override 
     public boolean activate() { 
      return Widgets.get(21, 42).validate(); 
     } 
     @Override 
     public void execute() { 
      Mouse.hop((int) Widgets.get(21, 42).getBoundingRectangle().getCenterX(), (int) Widgets.get(21, 42).getBoundingRectangle().getCenterY()); 
      Mouse.click(true); 
     } 
    } 

    private class Walk extends Node { 
     @Override 
     public boolean activate() { 
      return Menu.isOpen() && Menu.contains("Walk"); 
     } 

     @Override 
     public void execute() { 
      if (Menu.isOpen()) { 
       select(Menu.contains("Take") ? "Take" : "Walk"); 
      } 
     } 
    } 

Ошибка начинается в строке 63: } импорта java.awt.Color;Что такое класс, интерфейс или ошибка перечисление Я продолжаю ПОЛУЧАТЬ

Я пытался исправить этот код, присланный мне другом, но я просто не могу исправить эту ошибку; это, вероятно, потому, что я новичок, спасибо за помощь.

+0

Все ли это размещено в одном файле? – MAV

+0

Эти два класса должны быть в своих файлах. Каждый из них имеет собственный набор операторов 'import'. –

+0

Является ли код размещенным одним классом или несколькими классами? – medokr

ответ

1

В Java каждый класс должен быть в своем собственном файле. Компилятор не ожидает увидеть импорт (или действительно что-либо еще) после окончания определения класса ScriptWrapper.

Поместите DropParty в свой собственный файл DropParty.java.

0

Вам нужно поместить каждый класс в свой собственный файл, если вы не вложили в него частный класс. У вас есть несколько открытых классов в одном файле, поэтому компилятор не ожидает ничего увидеть после закрытия скобки из определения первого класса.

Смежные вопросы