turt2live

Untitled

Dec 31st, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. package com.turt2live.antishare.storage;
  2.  
  3. import java.io.File;
  4. import java.util.concurrent.CopyOnWriteArrayList;
  5.  
  6. import org.bukkit.GameMode;
  7. import org.bukkit.block.Block;
  8.  
  9. import com.turt2live.antishare.AntiShare;
  10. import com.turt2live.antishare.feildmaster.lib.configuration.EnhancedConfiguration;
  11. import com.turt2live.antishare.storage.BlockManager.ListComplete;
  12.  
  13. class BlockSaver implements Runnable {
  14.  
  15.     private final CopyOnWriteArrayList<Block> list;
  16.     private final AntiShare plugin = AntiShare.getInstance();
  17.     private final BlockManager blockman = plugin.getBlockManager();
  18.     private final File dir;
  19.     private final String gamemode;
  20.     private final ListComplete listType;
  21.     private boolean clear = false, load = false;
  22.     private double completed = 0;
  23.  
  24.     public BlockSaver(CopyOnWriteArrayList<Block> list, GameMode gm, File saveDir, ListComplete type){
  25.         this.list = list;
  26.         this.dir = saveDir;
  27.         this.gamemode = gm.name();
  28.         this.listType = type;
  29.     }
  30.  
  31.     @Override
  32.     public void run(){
  33.         for(Block block : list){
  34.             saveBlock(dir, block, gamemode);
  35.             completed++;
  36.         }
  37.         blockman.markSaveAsDone(listType, this);
  38.     }
  39.  
  40.     void saveBlock(File dir, Block block, String gamemode){
  41.         String fname = block.getChunk().getX() + "." + block.getChunk().getZ() + "." + block.getWorld().getName() + ".yml";
  42.         EnhancedConfiguration blocks = blockman.getFile(dir, fname);
  43.         blocks.set(block.getX() + ";" + block.getY() + ";" + block.getZ() + ";" + block.getWorld().getName(), gamemode);
  44.     }
  45.  
  46.     boolean getClear(){
  47.         return clear;
  48.     }
  49.  
  50.     boolean getLoad(){
  51.         return load;
  52.     }
  53.  
  54.     void setClear(boolean clear){
  55.         this.clear = clear;
  56.     }
  57.  
  58.     void setLoad(boolean load){
  59.         this.load = load;
  60.     }
  61.  
  62.     double getPercent(){
  63.         return (completed / list.size()) * 100;
  64.     }
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment