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