import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.WorldCreator;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldInitEvent;
import org.bukkit.event.world.WorldLoadEvent;
import org.bukkit.plugin.java.JavaPlugin;
import com.boydti.fawe.bukkit.wrapper.AsyncWorld;
import com.boydti.fawe.util.TaskManager;
public class AsyncWorldLoad extends JavaPlugin implements Listener {
@Override
public void onEnable() {
if ((Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit") != null) && (Bukkit.getPluginManager().getPlugin("WorldEdit") != null)) {
Bukkit.getPluginManager().registerEvents(this, this);
getLogger().log(Level.INFO, "Registered Events!");
}
else {
getLogger().log(Level.WARNING, "FastAsyncWorldEdit and WorldEdit is required for this plugin!");
}
}
@EventHandler(priority=EventPriority.HIGHEST)
public void onWorldLoad(WorldLoadEvent e) {
TaskManager.IMP.async(new Runnable() {
@Override
public void run() {
AsyncWorld world = null;
WorldCreator creator = new WorldCreator(e.getWorld().getName());
if (Bukkit.getWorld(creator.name()) == null) {
world = AsyncWorld.create(creator);
}
else {
AsyncWorld.wrap(Bukkit.getWorld(creator.name()));
}
Block block = world.getBlockAt(0, 0, 0);
block.setType(Material.BEDROCK);
world.commit();
Bukkit.getWorlds().add(world);
}
});
}
@EventHandler(priority=EventPriority.HIGHEST)
public void onStartUp(WorldInitEvent e) {
TaskManager.IMP.async(new Runnable() {
@Override
public void run() {
AsyncWorld world = null;
WorldCreator creator = new WorldCreator(e.getWorld().getName());
if (Bukkit.getWorld(creator.name()) == null) {
world = AsyncWorld.create(creator);
}
else {
AsyncWorld.wrap(Bukkit.getWorld(creator.name()));
}
Block block = world.getBlockAt(0, 0, 0);
block.setType(Material.BEDROCK);
world.commit();
Bukkit.getWorlds().add(world);
}
});
}
}