package com.publicuhc.scatter;

import com.publicuhc.scatter.logic.ScatterLogic;

import java.util.List;

public interface Scatterer {

    /**
     * @param logic the logic to add to the list we can use in scatters
     */
    void addScatterLogic(ScatterLogic logic);

    /**
     * @return all of the scatter logic we know
     */
    List<ScatterLogic> getAllScatterLogic();

    /**
     * @param name the id of the logic to fetch
     * @return the scatterlogic if found, null otherwise
     */
    ScatterLogic getScatterLogic(String name);
}

@@ -58,492 +58,902 @@
 ter.
-logic.ScatterLogic;%0A%0Aimport java.util.List;%0A%0Apublic interface Scatterer %7B%0A%0A    /**%0A     * @param logic the logic to add to the list we can use in scatt
+exceptions.ScatterLocationException;%0Aimport com.publicuhc.scatter.logic.ScatterLogic;%0Aimport com.publicuhc.scatter.zones.DeadZone;%0Aimport com.publicuhc.scatter.zones.DeadZoneBuilder;%0Aimport org.bukkit.Location;%0A%0Aimport java.util.List;%0A%0Apublic interface Scatterer %7B%0A%0A    /**%0A     * Attempt to find safe locations%0A     *%0A     * @return list of locations outside of provided deadzones and outside of zones created by the build
 er
-s
 %0A     *
-/%0A    void addScatterLogic(ScatterLogic logic);%0A
+ @throws ScatterLocationException if a location wasn't able to be fetched
 %0A    
-/**
+ */
 %0A    
- * @return all of the scatter logic we know%0A     */%0A    List%3CScatterLogic%3E getAllScatterLogic();%0A%0A    /**%0A     * @param name the id of the logic to fetch%0A     * @return the scatterlogic if found, null otherwise%0A     */%0A    ScatterLogic getScatterLogic(String nam
+List%3CLocation%3E getScatterLocations(int amount) throws ScatterLocationException;%0A%0A    void setLogic(ScatterLogic logic);%0A%0A    ScatterLogic getLogic();%0A%0A    void setDeadZoneBuilder(DeadZoneBuilder builder);%0A%0A    DeadZoneBuilder getDeadZoneBuilder();%0A%0A    List%3CDeadZone%3E getBaseDeadZones();%0A%0A    void setBaseDeadZones(List%3CDeadZone%3E zones);%0A%0A    void addBaseDeadZone(DeadZone zon
 e);%0A

improve the interface as a way to scatter instead of a logic manager