9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-25 09:59:20 +00:00

deep clone a compound

This commit is contained in:
XiaoMoMi
2024-09-08 16:17:11 +08:00
parent 90b1ce1994
commit e04f787587
10 changed files with 162 additions and 111 deletions

View File

@@ -28,6 +28,7 @@ import net.momirealms.customcrops.api.core.block.CustomCropsBlock;
import net.momirealms.customcrops.api.core.world.*;
import net.momirealms.customcrops.api.core.world.adaptor.AbstractWorldAdaptor;
import net.momirealms.customcrops.api.util.StringUtils;
import net.momirealms.customcrops.api.util.TagUtils;
import net.momirealms.customcrops.common.helper.GsonHelper;
import net.momirealms.customcrops.common.helper.VersionHelper;
import net.momirealms.customcrops.common.util.Key;
@@ -423,7 +424,7 @@ public class BukkitWorldAdaptor extends AbstractWorldAdaptor<World> {
}
for (int pos : (int[]) block.get("pos").getValue()) {
BlockPos blockPos = new BlockPos(pos);
blockMap.put(blockPos, CustomCropsBlockState.create(customBlock, data));
blockMap.put(blockPos, CustomCropsBlockState.create(customBlock, TagUtils.deepClone(data)));
}
}
sectionMap.put(sectionID, CustomCropsSection.restore(sectionID, blockMap));

View File

@@ -21,6 +21,7 @@ import dev.dejvokep.boostedyaml.YamlDocument;
import dev.dejvokep.boostedyaml.block.implementation.Section;
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
import net.momirealms.customcrops.api.core.ConfigManager;
import net.momirealms.customcrops.api.core.TickMode;
import net.momirealms.customcrops.api.core.world.*;
import net.momirealms.customcrops.api.core.world.adaptor.WorldAdaptor;
import net.momirealms.customcrops.api.integration.SeasonProvider;
@@ -360,16 +361,10 @@ public class BukkitWorldManager implements WorldManager, Listener {
);
}
private static boolean getRandomTickModeByString(String str) {
private static int getRandomTickModeByString(String str) {
if (str == null) {
return false;
return 1;
}
if (str.equalsIgnoreCase("RANDOM_TICK")) {
return true;
}
if (str.equalsIgnoreCase("SCHEDULED_TICK")) {
return false;
}
throw new IllegalArgumentException("Invalid mode found when loading world settings: " + str);
return TickMode.valueOf(str.toUpperCase(Locale.ENGLISH)).mode();
}
}