diff --git a/plugins/realisticbiomes-paper/build.gradle.kts b/plugins/realisticbiomes-paper/build.gradle.kts index bd900a81b..6c9885282 100644 --- a/plugins/realisticbiomes-paper/build.gradle.kts +++ b/plugins/realisticbiomes-paper/build.gradle.kts @@ -6,7 +6,9 @@ plugins { version = "3.2.3" dependencies { - paperDevBundle("1.18.2-R0.1-SNAPSHOT") + paperweight { + paperDevBundle("1.20.4-R0.1-SNAPSHOT") + } compileOnly(project(":plugins:civmodcore-paper")) compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.2.8") diff --git a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java index edf132ba2..5b17019ea 100644 --- a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java +++ b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java @@ -3,12 +3,18 @@ package com.untamedears.realisticbiomes.growth; import com.untamedears.realisticbiomes.model.Plant; import java.util.Random; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.features.TreeFeatures; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import org.bukkit.Material; import org.bukkit.TreeType; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_18_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_20_R3.util.RandomSourceWrapper; /** * We need to differentiate fungus from other types of saplings thanks @@ -20,7 +26,7 @@ import org.bukkit.craftbukkit.v1_18_R2.CraftWorld; */ public class FungusGrower extends AgeableGrower { - private final Random random = new Random(); + private final RandomSource randomSource = new RandomSourceWrapper(new Random()); public FungusGrower(final Material material) { super(material, 1, 1); @@ -42,18 +48,22 @@ public class FungusGrower extends AgeableGrower { } final Block block = plant.getLocation().getBlock(); final Material material = block.getType(); - final var growth = + final ResourceKey> growth = material == Material.CRIMSON_FUNGUS ? TreeFeatures.CRIMSON_FUNGUS : - material == Material.WARPED_FUNGUS ? TreeFeatures.WARPED_FUNGUS : - material == Material.FLOWERING_AZALEA ? TreeFeatures.AZALEA_TREE : - null; + material == Material.WARPED_FUNGUS ? TreeFeatures.WARPED_FUNGUS : + material == Material.FLOWERING_AZALEA ? TreeFeatures.AZALEA_TREE : + null; if (growth == null) { return true; } final ServerLevel world = ((CraftWorld) block.getWorld()).getHandle(); final BlockPos position = new BlockPos(block.getX(), block.getY(), block.getZ()); //Taken from CraftWorld.generateTree() - if (!growth.value().place(world, world.getChunkSource().getGenerator(), this.random, position)) { + Holder> growthHolder = world.registryAccess().registryOrThrow(Registries.CONFIGURED_FEATURE).getHolder(growth).orElse(null); + + if (growthHolder == null) return false; + + if (!growthHolder.value().place(world, world.getChunkSource().getGenerator(), this.randomSource, position)) { block.setType(material); } return true; diff --git a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java index 0e1208fda..59014a975 100644 --- a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java +++ b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java @@ -34,24 +34,28 @@ public class RBUtils { public static TreeType getTreeType(Block block) { switch (block.getType()) { - case ACACIA_SAPLING: - return TreeType.ACACIA; - case BIRCH_SAPLING: - return TreeType.BIRCH; - case OAK_SAPLING: - return TreeType.TREE; - case JUNGLE_SAPLING: - return TreeType.JUNGLE; - case DARK_OAK_SAPLING: - return TreeType.DARK_OAK; - case SPRUCE_SAPLING: - return TreeType.REDWOOD; - case CRIMSON_FUNGUS: - return TreeType.CRIMSON_FUNGUS; - case WARPED_FUNGUS: - return TreeType.WARPED_FUNGUS; + case ACACIA_SAPLING: + return TreeType.ACACIA; + case BIRCH_SAPLING: + return TreeType.BIRCH; + case OAK_SAPLING: + return TreeType.TREE; + case JUNGLE_SAPLING: + return TreeType.JUNGLE; + case DARK_OAK_SAPLING: + return TreeType.DARK_OAK; + case SPRUCE_SAPLING: + return TreeType.REDWOOD; + case CRIMSON_FUNGUS: + return TreeType.CRIMSON_FUNGUS; + case WARPED_FUNGUS: + return TreeType.WARPED_FUNGUS; case FLOWERING_AZALEA: - return TreeType.AZALEA; + return TreeType.AZALEA; + case MANGROVE_PROPAGULE: + return TreeType.MANGROVE; + case CHERRY_SAPLING: + return TreeType.CHERRY; default: throw new IllegalArgumentException(); } @@ -123,7 +127,8 @@ public class RBUtils { || material == Material.DARK_OAK_SAPLING || material == Material.JUNGLE_SAPLING || material == Material.OAK_SAPLING || material == Material.SPRUCE_SAPLING || material == Material.CRIMSON_FUNGUS || material == Material.WARPED_FUNGUS - || material == Material.FLOWERING_AZALEA; + || material == Material.FLOWERING_AZALEA || material == Material.MANGROVE_PROPAGULE + || material == Material.CHERRY_SAPLING; } public static boolean isStem(Material mat) { diff --git a/plugins/realisticbiomes-paper/src/main/resources/plugin.yml b/plugins/realisticbiomes-paper/src/main/resources/plugin.yml index 4db6382da..45f9a34f7 100644 --- a/plugins/realisticbiomes-paper/src/main/resources/plugin.yml +++ b/plugins/realisticbiomes-paper/src/main/resources/plugin.yml @@ -15,7 +15,7 @@ authors: - pruby - Maxopoly - BlackXnt -api-version: 1.18 +api-version: 1.20 description: RealisticBiomes makes farming harder by limiting growth rates of crops and making them only grow well in certain biomes. permissions: rb.public: