9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-27 10:59:20 +00:00
This commit is contained in:
XiaoMoMi
2024-09-13 16:26:35 +08:00
parent 3e251ed47a
commit 60d2525fbb
13 changed files with 215 additions and 24 deletions

View File

@@ -42,6 +42,7 @@ public class DebugWorldsCommand extends BukkitCommandFeature<CommandSender> {
for (World world : Bukkit.getWorlds()) {
BukkitCustomCropsPlugin.getInstance().getWorldManager().getWorld(world).ifPresent(w -> {
sender.sendMessage(AdventureHelper.miniMessage("<gold>World: " + world.getName() + "</gold>"));
sender.sendMessage(AdventureHelper.miniMessage(" - Loaded regions: " + w.loadedRegions().length));
sender.sendMessage(AdventureHelper.miniMessage(" - Loaded chunks: " + w.loadedChunks().length));
sender.sendMessage(AdventureHelper.miniMessage(" - Lazy chunks: " + w.lazyChunks().length));
});

View File

@@ -87,7 +87,7 @@ public class ForceTickCommand extends BukkitCommandFeature<CommandSender> {
return;
}
CustomCropsWorld<?> customCropsWorld = optionalWorld.get();
BukkitCustomCropsPlugin.getInstance().getScheduler().async().execute(() -> {
customCropsWorld.scheduler().async().execute(() -> {
int amount = 0;
long time1 = System.currentTimeMillis();
for (CustomCropsChunk customCropsChunk : customCropsWorld.loadedChunks()) {

View File

@@ -184,6 +184,12 @@ public class BukkitWorldAdaptor extends AbstractWorldAdaptor<World> {
@Override
public void saveRegion(CustomCropsWorld<World> world, CustomCropsRegion region) {
File file = getRegionDataFile(world.world(), region.regionPos());
if (region.canPrune()) {
if (file.exists()) {
file.delete();
}
return;
}
long time1 = System.currentTimeMillis();
File parentDir = file.getParentFile();
if (parentDir != null && !parentDir.exists()) {

View File

@@ -209,13 +209,11 @@ public class BukkitWorldManager implements WorldManager, Listener {
if (world.isChunkLoaded(pos)) return;
Optional<CustomCropsChunk> customChunk = world.getChunk(pos);
// don't load bukkit chunk again since it has been loaded
customChunk.ifPresent(customCropsChunk -> {
customCropsChunk.load(false);
});
customChunk.ifPresent(customCropsChunk -> customCropsChunk.load(false));
}
public void notifyOfflineUpdates(CustomCropsWorld<?> world, ChunkPos pos) {
world.getChunk(pos).ifPresent(CustomCropsChunk::notifyOfflineTask);
world.getLoadedChunk(pos).ifPresent(CustomCropsChunk::notifyOfflineTask);
}
@Override
@@ -225,14 +223,16 @@ public class BukkitWorldManager implements WorldManager, Listener {
return false;
}
removedWorld.setTicking(false);
removedWorld.save();
removedWorld.save(false);
removedWorld.scheduler().shutdownScheduler();
removedWorld.scheduler().shutdownExecutor();
return true;
}
@EventHandler
public void onWorldSave(WorldSaveEvent event) {
final World world = event.getWorld();
getWorld(world).ifPresent(CustomCropsWorld::save);
getWorld(world).ifPresent(world1 -> world1.save(true));
}
@EventHandler (priority = EventPriority.HIGH)