mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-29 16:46:46 +01:00
Cleanup
This commit is contained in:
parent
5645bf7982
commit
db59f24873
@ -6,7 +6,7 @@ import org.bukkit.block.Block;
|
|||||||
public interface ChunkletManager {
|
public interface ChunkletManager {
|
||||||
/**
|
/**
|
||||||
* Informs the ChunkletManager a chunk is loaded, it should load appropriate data
|
* Informs the ChunkletManager a chunk is loaded, it should load appropriate data
|
||||||
*
|
*
|
||||||
* @param cx Chunk X coordiate that is loaded
|
* @param cx Chunk X coordiate that is loaded
|
||||||
* @param cz Chunk Z coordiate that is loaded
|
* @param cz Chunk Z coordiate that is loaded
|
||||||
* @param world World that the chunk was loaded in
|
* @param world World that the chunk was loaded in
|
||||||
@ -15,7 +15,7 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Informs the ChunkletManager a chunk is unloaded, it should unload and save appropriate data
|
* Informs the ChunkletManager a chunk is unloaded, it should unload and save appropriate data
|
||||||
*
|
*
|
||||||
* @param cx Chunk X coordiate that is unloaded
|
* @param cx Chunk X coordiate that is unloaded
|
||||||
* @param cz Chunk Z coordiate that is unloaded
|
* @param cz Chunk Z coordiate that is unloaded
|
||||||
* @param world World that the chunk was unloaded in
|
* @param world World that the chunk was unloaded in
|
||||||
@ -24,14 +24,14 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Save all ChunkletStores related to the given world
|
* Save all ChunkletStores related to the given world
|
||||||
*
|
*
|
||||||
* @param world World to save
|
* @param world World to save
|
||||||
*/
|
*/
|
||||||
public void saveWorld(World world);
|
public void saveWorld(World world);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unload all ChunkletStores from memory related to the given world after saving them
|
* Unload all ChunkletStores from memory related to the given world after saving them
|
||||||
*
|
*
|
||||||
* @param world World to unload
|
* @param world World to unload
|
||||||
*/
|
*/
|
||||||
public void unloadWorld(World world);
|
public void unloadWorld(World world);
|
||||||
@ -48,7 +48,7 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Check to see if a given location is set to true
|
* Check to see if a given location is set to true
|
||||||
*
|
*
|
||||||
* @param x X coordinate to check
|
* @param x X coordinate to check
|
||||||
* @param y Y coordinate to check
|
* @param y Y coordinate to check
|
||||||
* @param z Z coordinate to check
|
* @param z Z coordinate to check
|
||||||
@ -59,7 +59,7 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Check to see if a given block location is set to true
|
* Check to see if a given block location is set to true
|
||||||
*
|
*
|
||||||
* @param block Block location to check
|
* @param block Block location to check
|
||||||
* @return true if the given block location is set to true, false if otherwise
|
* @return true if the given block location is set to true, false if otherwise
|
||||||
*/
|
*/
|
||||||
@ -67,7 +67,7 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a given location to true, should create stores as necessary if the location does not exist
|
* Set a given location to true, should create stores as necessary if the location does not exist
|
||||||
*
|
*
|
||||||
* @param x X coordinate to set
|
* @param x X coordinate to set
|
||||||
* @param y Y coordinate to set
|
* @param y Y coordinate to set
|
||||||
* @param z Z coordinate to set
|
* @param z Z coordinate to set
|
||||||
@ -77,14 +77,14 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a given block location to true, should create stores as necessary if the location does not exist
|
* Set a given block location to true, should create stores as necessary if the location does not exist
|
||||||
*
|
*
|
||||||
* @param block Block location to set
|
* @param block Block location to set
|
||||||
*/
|
*/
|
||||||
public void setTrue(Block block);
|
public void setTrue(Block block);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a given location to false, should not create stores if one does not exist for the given location
|
* Set a given location to false, should not create stores if one does not exist for the given location
|
||||||
*
|
*
|
||||||
* @param x X coordinate to set
|
* @param x X coordinate to set
|
||||||
* @param y Y coordinate to set
|
* @param y Y coordinate to set
|
||||||
* @param z Z coordinate to set
|
* @param z Z coordinate to set
|
||||||
@ -94,7 +94,7 @@ public interface ChunkletManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a given block location to false, should not create stores if one does not exist for the given location
|
* Set a given block location to false, should not create stores if one does not exist for the given location
|
||||||
*
|
*
|
||||||
* @param block Block location to set
|
* @param block Block location to set
|
||||||
*/
|
*/
|
||||||
public void setFalse(Block block);
|
public void setFalse(Block block);
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.gmail.nossr50.util.blockmeta;
|
package com.gmail.nossr50.util.blockmeta;
|
||||||
|
|
||||||
public class ChunkletManagerFactory {
|
public class ChunkletManagerFactory {
|
||||||
public static ChunkletManager getChunkletManager() {
|
public static ChunkletManager getChunkletManager() {
|
||||||
// TODO: Add in loading from config what type of manager we want.
|
// TODO: Add in loading from config what type of manager we want.
|
||||||
return new HashChunkletManager();
|
return new HashChunkletManager();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
public interface ChunkletStore extends Serializable {
|
public interface ChunkletStore extends Serializable {
|
||||||
/**
|
/**
|
||||||
|
* Checks the value at the given coordinates
|
||||||
|
*
|
||||||
* @param x x coordinate in current chunklet
|
* @param x x coordinate in current chunklet
|
||||||
* @param y y coordinate in current chunklet
|
* @param y y coordinate in current chunklet
|
||||||
* @param z z coordinate in current chunklet
|
* @param z z coordinate in current chunklet
|
||||||
@ -13,7 +15,7 @@ public interface ChunkletStore extends Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value to true at the given coordinates
|
* Set the value to true at the given coordinates
|
||||||
*
|
*
|
||||||
* @param x x coordinate in current chunklet
|
* @param x x coordinate in current chunklet
|
||||||
* @param y y coordinate in current chunklet
|
* @param y y coordinate in current chunklet
|
||||||
* @param z z coordinate in current chunklet
|
* @param z z coordinate in current chunklet
|
||||||
@ -22,7 +24,7 @@ public interface ChunkletStore extends Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value to false at the given coordinates
|
* Set the value to false at the given coordinates
|
||||||
*
|
*
|
||||||
* @param x x coordinate in current chunklet
|
* @param x x coordinate in current chunklet
|
||||||
* @param y y coordinate in current chunklet
|
* @param y y coordinate in current chunklet
|
||||||
* @param z z coordinate in current chunklet
|
* @param z z coordinate in current chunklet
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.gmail.nossr50.util.blockmeta;
|
package com.gmail.nossr50.util.blockmeta;
|
||||||
|
|
||||||
public class ChunkletStoreFactory {
|
public class ChunkletStoreFactory {
|
||||||
protected static ChunkletStore getChunkletStore() {
|
protected static ChunkletStore getChunkletStore() {
|
||||||
// TODO: Add in loading from config what type of store we want.
|
// TODO: Add in loading from config what type of store we want.
|
||||||
return new PrimitiveChunkletStore();
|
return new PrimitiveChunkletStore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
} else {
|
} else {
|
||||||
ChunkletStore in = deserializeChunkletStore(yFile);
|
ChunkletStore in = deserializeChunkletStore(yFile);
|
||||||
if(in != null) {
|
if(in != null) {
|
||||||
store.put(world.getName() + "," + cx + "," + cz + "," + y, in);
|
store.put(world.getName() + "," + cx + "," + cz + "," + y, in);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,29 +78,29 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void unloadWorld(World world) {
|
public void unloadWorld(World world) {
|
||||||
saveWorld(world);
|
saveWorld(world);
|
||||||
|
|
||||||
String worldName = world.getName();
|
String worldName = world.getName();
|
||||||
|
|
||||||
for(String key : store.keySet()) {
|
for(String key : store.keySet()) {
|
||||||
String tempWorldName = key.split(",")[0];
|
String tempWorldName = key.split(",")[0];
|
||||||
if(tempWorldName.equals(worldName)) {
|
if(tempWorldName.equals(worldName)) {
|
||||||
store.remove(key);
|
store.remove(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveAll() {
|
public void saveAll() {
|
||||||
for(World world : Bukkit.getWorlds()) {
|
for(World world : Bukkit.getWorlds()) {
|
||||||
saveWorld(world);
|
saveWorld(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unloadAll() {
|
public void unloadAll() {
|
||||||
saveAll();
|
saveAll();
|
||||||
for(World world : Bukkit.getWorlds()) {
|
for(World world : Bukkit.getWorlds()) {
|
||||||
unloadWorld(world);
|
unloadWorld(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isTrue(int x, int y, int z, World world) {
|
public boolean isTrue(int x, int y, int z, World world) {
|
||||||
@ -155,7 +155,7 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
|
|
||||||
ChunkletStore cStore;
|
ChunkletStore cStore;
|
||||||
if(!store.containsKey(world.getName() + "," + cx + "," + cz + "," + cy)) {
|
if(!store.containsKey(world.getName() + "," + cx + "," + cz + "," + cy)) {
|
||||||
return; // No need to make a store for something we will be setting to false
|
return; // No need to make a store for something we will be setting to false
|
||||||
}
|
}
|
||||||
|
|
||||||
cStore = store.get(world.getName() + "," + cx + "," + cz + "," + cy);
|
cStore = store.get(world.getName() + "," + cx + "," + cz + "," + cy);
|
||||||
@ -192,7 +192,7 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
* @param location Where on the disk to put it
|
* @param location Where on the disk to put it
|
||||||
*/
|
*/
|
||||||
private void serializeChunkletStore(ChunkletStore cStore, File location) {
|
private void serializeChunkletStore(ChunkletStore cStore, File location) {
|
||||||
try {
|
try {
|
||||||
FileOutputStream fileOut = new FileOutputStream(location);
|
FileOutputStream fileOut = new FileOutputStream(location);
|
||||||
ObjectOutputStream objOut = new ObjectOutputStream(fileOut);
|
ObjectOutputStream objOut = new ObjectOutputStream(fileOut);
|
||||||
objOut.writeObject(cStore);
|
objOut.writeObject(cStore);
|
||||||
@ -219,8 +219,8 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
} catch (ClassNotFoundException ex) {
|
} catch (ClassNotFoundException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
return storeIn;
|
return storeIn;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user