mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Fixing a potential error with legacy chunklet types.
This commit is contained in:
		@@ -7,6 +7,8 @@ import java.lang.String;
 | 
				
			|||||||
import org.bukkit.scheduler.BukkitScheduler;
 | 
					import org.bukkit.scheduler.BukkitScheduler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.util.blockmeta.ChunkletStore;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.util.blockmeta.PrimitiveChunkletStore;
 | 
				
			||||||
import com.gmail.nossr50.util.blockmeta.PrimitiveExChunkletStore;
 | 
					import com.gmail.nossr50.util.blockmeta.PrimitiveExChunkletStore;
 | 
				
			||||||
import com.gmail.nossr50.util.blockmeta.PrimitiveChunkStore;
 | 
					import com.gmail.nossr50.util.blockmeta.PrimitiveChunkStore;
 | 
				
			||||||
import com.gmail.nossr50.util.blockmeta.HashChunkletManager;
 | 
					import com.gmail.nossr50.util.blockmeta.HashChunkletManager;
 | 
				
			||||||
@@ -20,7 +22,9 @@ public class BlockStoreConversionZDirectory implements Runnable {
 | 
				
			|||||||
    private File xDir, dataDir;
 | 
					    private File xDir, dataDir;
 | 
				
			||||||
    private HashChunkletManager manager;
 | 
					    private HashChunkletManager manager;
 | 
				
			||||||
    private HashChunkManager newManager;
 | 
					    private HashChunkManager newManager;
 | 
				
			||||||
    private PrimitiveExChunkletStore currentChunklet;
 | 
					    private ChunkletStore tempChunklet;
 | 
				
			||||||
 | 
					    private PrimitiveChunkletStore primitiveChunklet = null;
 | 
				
			||||||
 | 
					    private PrimitiveExChunkletStore primitiveExChunklet = null;
 | 
				
			||||||
    private PrimitiveChunkStore currentChunk;
 | 
					    private PrimitiveChunkStore currentChunk;
 | 
				
			||||||
    private boolean[] oldArray, newArray;
 | 
					    private boolean[] oldArray, newArray;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -80,8 +84,12 @@ public class BlockStoreConversionZDirectory implements Runnable {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        for(this.y = 0; this.y < 4; this.y++) {
 | 
					        for(this.y = 0; this.y < 4; this.y++) {
 | 
				
			||||||
            this.chunkletName = this.world.getName() + "," + this.cx + "," + this.cz + "," + this.y;
 | 
					            this.chunkletName = this.world.getName() + "," + this.cx + "," + this.cz + "," + this.y;
 | 
				
			||||||
            this.currentChunklet = (PrimitiveExChunkletStore) this.manager.store.get(this.chunkletName);
 | 
						    this.tempChunklet = this.manager.store.get(this.chunkletName);
 | 
				
			||||||
            if(this.currentChunklet == null) {
 | 
					            if(this.tempChunklet instanceof PrimitiveChunkletStore)
 | 
				
			||||||
 | 
					                this.primitiveChunklet = (PrimitiveChunkletStore) this.tempChunklet;
 | 
				
			||||||
 | 
					            else if(this.tempChunklet instanceof PrimitiveExChunkletStore)
 | 
				
			||||||
 | 
					                this.primitiveExChunklet = (PrimitiveExChunkletStore) this.tempChunklet;
 | 
				
			||||||
 | 
					            if(this.tempChunklet == null) {
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                this.chunkName = this.world.getName() + "," + this.cx + "," + this.cz;
 | 
					                this.chunkName = this.world.getName() + "," + this.cx + "," + this.cz;
 | 
				
			||||||
@@ -113,7 +121,12 @@ public class BlockStoreConversionZDirectory implements Runnable {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                for(this.x = 0; this.x < 16; this.x++) {
 | 
					                for(this.x = 0; this.x < 16; this.x++) {
 | 
				
			||||||
                    for(this.z = 0; this.z < 16; this.z++) {
 | 
					                    for(this.z = 0; this.z < 16; this.z++) {
 | 
				
			||||||
                        this.oldArray = this.currentChunklet.store[x][z];
 | 
					                        if(this.primitiveChunklet != null)
 | 
				
			||||||
 | 
					                            this.oldArray = this.primitiveChunklet.store[x][z];
 | 
				
			||||||
 | 
					                        if(this.primitiveExChunklet != null)
 | 
				
			||||||
 | 
					                            this.oldArray = this.primitiveExChunklet.store[x][z];
 | 
				
			||||||
 | 
					                        else
 | 
				
			||||||
 | 
					                            return;
 | 
				
			||||||
                        this.newArray = this.currentChunk.store[x][z];
 | 
					                        this.newArray = this.currentChunk.store[x][z];
 | 
				
			||||||
                        System.arraycopy(this.oldArray, 0, this.newArray, (this.y * 64), 64);
 | 
					                        System.arraycopy(this.oldArray, 0, this.newArray, (this.y * 64), 64);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@@ -148,7 +161,9 @@ public class BlockStoreConversionZDirectory implements Runnable {
 | 
				
			|||||||
        this.manager = null;
 | 
					        this.manager = null;
 | 
				
			||||||
        this.xDir = null;
 | 
					        this.xDir = null;
 | 
				
			||||||
        this.dataDir = null;
 | 
					        this.dataDir = null;
 | 
				
			||||||
        this.currentChunklet = null;
 | 
					        this.tempChunklet = null;
 | 
				
			||||||
 | 
					        this.primitiveChunklet = null;
 | 
				
			||||||
 | 
					        this.primitiveExChunklet = null;
 | 
				
			||||||
        this.currentChunk = null;
 | 
					        this.currentChunk = null;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user