Skip to content

Commit

Permalink
core: region_processor: ignore empty region files
Browse files Browse the repository at this point in the history
Minecraft generates empty region files in some cases. Just ignore these
files instead of printing an error message for each.
  • Loading branch information
neocturne committed Jun 14, 2024
1 parent 66189d2 commit e74e7be
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@

The calculation of the number of skipped regions could underflow when more invalid than valid
regions were encountered.
- Ignore empty region files instead of treating them as invalid

Minecraft generates empty region files in some cases. Just ignore them instead of printing an
error message every time.

## [2.1.0] - 2024-01-27

Expand Down
19 changes: 14 additions & 5 deletions src/core/region_processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -337,11 +337,20 @@ impl<'a> RegionProcessor<'a> {
})?
.filter_map(|entry| entry.ok())
.filter(|entry| {
// We are only interested in regular files
matches!(
entry.file_type().map(|file_type| file_type.is_file()),
Ok(true)
)
(|| {
// We are only interested in regular files
let file_type = entry.file_type().ok()?;
if !file_type.is_file() {
return None;
}

let metadata = entry.metadata().ok()?;
if metadata.len() == 0 {
return None;
}
Some(())
})()
.is_some()
})
.filter_map(|entry| parse_region_filename(&entry.file_name()))
.collect())
Expand Down

0 comments on commit e74e7be

Please sign in to comment.