fix(LitematicConverter): Properties can be absent if it's empty
This commit is contained in:
4 files changed
+16
-8
No files matched your search
+1
-1
@@ -6,6 +6,6 @@ loader_version=0.16.14
|
||||
# Fabric API
|
||||
fabric_version=0.127.0+1.21.6
|
||||
# Mod Properties
|
||||
mod_version=1.1
|
||||
mod_version=1.2
|
||||
maven_group=io.ib67
|
||||
archives_base_name=sfcraft
|
||||
@@ -25,11 +25,16 @@ public class ProjectileEntityMixin {
|
||||
@Unique
|
||||
private boolean isPlayer;
|
||||
|
||||
@Inject(at = @At("HEAD"), method = "setOwner")
|
||||
@Inject(at = @At("HEAD"), method = "setOwner(Lnet/minecraft/entity/Entity;)V")
|
||||
private void setOwner(@Nullable Entity owner, CallbackInfo ci) {
|
||||
isPlayer = owner instanceof PlayerEntity;
|
||||
}
|
||||
|
||||
@Inject(at=@At("HEAD"), method = "setOwner(Lnet/minecraft/entity/LazyEntityReference;)V")
|
||||
private void setOwner(@Nullable LazyEntityReference<Entity> owner, CallbackInfo ci) {
|
||||
isPlayer = LazyEntityReference.resolve(owner, $().getWorld(), Entity.class) instanceof PlayerEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* @reason Implement the logic correctly.
|
||||
* @author icybear
|
||||
|
||||
@@ -55,9 +55,11 @@ public class WelcomeModule extends ServerModule {
|
||||
Files.createDirectory(announcementDir);
|
||||
}
|
||||
announcements = new HashMap<>();
|
||||
for (var ele : Files.list(announcementDir).toList()) {
|
||||
if (!ele.endsWith("txt")) continue;
|
||||
announcements.put("sfwelcome_"+ele.getFileName().toString().replace(".txt", ""), Files.readString(ele).replaceAll("&", "§"));
|
||||
try(var lines = Files.list(announcementDir)){
|
||||
for (var ele : lines.toList()) {
|
||||
if (!ele.toString().endsWith("txt")) continue;
|
||||
announcements.put("sfwelcome_"+ele.getFileName().toString().replace(".txt", ""), Files.readString(ele).replaceAll("&", "§"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +74,7 @@ public class WelcomeModule extends ServerModule {
|
||||
for (String s : announcements.keySet()) {
|
||||
if (!player.getCommandTags().contains(s)) {
|
||||
player.addCommandTag(s);
|
||||
s.lines().map(Text::of).forEach(player::sendMessage);
|
||||
announcements.get(s).lines().map(Text::of).forEach(player::sendMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,8 +119,9 @@ public class LitematicConverter implements AutoCloseable {
|
||||
for (int i = 0; i < paletteNbt.size(); i++) {
|
||||
var entry = (NbtCompound) paletteNbt.get(i);
|
||||
var name = new StringBuilder(entry.getString("Name").orElseThrow(() -> new IllegalStateException("Name not found")));
|
||||
var properties = entry.getCompound("Properties").orElseThrow(() -> new IllegalStateException("Properties not found"));
|
||||
if (!properties.isEmpty()) {
|
||||
var _properties = entry.getCompound("Properties");
|
||||
if (_properties.isPresent()) {
|
||||
var properties = _properties.get();
|
||||
name.append("[");
|
||||
var props = new ArrayList<String>();
|
||||
for (String key : properties.getKeys()) {
|
||||
|
||||
Reference in new issue
Block a user