Improve world deletion handling.
This commit is contained in:
parent
899bb08a80
commit
419ec715d9
@ -271,6 +271,9 @@ public final class ItemcaseManager {
|
|||||||
// Get world name.
|
// Get world name.
|
||||||
String worldName = event.getWorld().getName();
|
String worldName = event.getWorld().getName();
|
||||||
|
|
||||||
|
// WorldFile.
|
||||||
|
WorldFile worldFile = null;
|
||||||
|
|
||||||
// For every entry.
|
// For every entry.
|
||||||
for(Entry<World, WorldFile> entry :
|
for(Entry<World, WorldFile> entry :
|
||||||
ItemcaseManager.this.worldFiles.entrySet()) {
|
ItemcaseManager.this.worldFiles.entrySet()) {
|
||||||
@ -281,6 +284,9 @@ public final class ItemcaseManager {
|
|||||||
// Attempt to delete config.
|
// Attempt to delete config.
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
// Set world file.
|
||||||
|
worldFile = entry.getValue();
|
||||||
|
|
||||||
// Delete config.
|
// Delete config.
|
||||||
entry.getValue().deleteDirectory();
|
entry.getValue().deleteDirectory();
|
||||||
|
|
||||||
@ -293,6 +299,29 @@ public final class ItemcaseManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remove world file.
|
||||||
|
ItemcaseManager.this.worldFiles.values().remove(worldFile);
|
||||||
|
|
||||||
|
// List to store itemcases of this world.
|
||||||
|
ArrayList<Itemcase> itemcases = new ArrayList();
|
||||||
|
|
||||||
|
// For every itemcase.
|
||||||
|
for(Itemcase itemcase : ItemcaseManager.this.itemcases) {
|
||||||
|
|
||||||
|
// Check if itemcase was in deleted world.
|
||||||
|
if(itemcase.getLocation().getWorld().getName() == worldName) {
|
||||||
|
|
||||||
|
// Despawn item.
|
||||||
|
itemcase.despawnItem();
|
||||||
|
|
||||||
|
// Add to list.
|
||||||
|
itemcases.add(itemcase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove all itemcases that were in this world from list.
|
||||||
|
ItemcaseManager.this.itemcases.removeAll(itemcases);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user