From 4892e056cfe25e7422977b7b215d8129b230dc02 Mon Sep 17 00:00:00 2001 From: Jordan Date: Wed, 14 Jun 2023 10:47:19 +0200 Subject: [PATCH] feat: implement recently-added tree types to tree generator (#2332) * feat: implement recently-added tree types to tree generator * fix: add mappings to implementation worlds * Use later API version to fix tests --------- Co-authored-by: Madeline Miller --- worldedit-bukkit/build.gradle.kts | 4 ++-- .../java/com/sk89q/wepif/TestOfflinePermissible.java | 11 +++++++++++ .../java/com/sk89q/worldedit/util/TreeGenerator.java | 3 +++ .../java/com/sk89q/worldedit/fabric/FabricWorld.java | 3 +++ .../java/com/sk89q/worldedit/forge/ForgeWorld.java | 3 +++ .../java/com/sk89q/worldedit/sponge/SpongeWorld.java | 3 +++ 6 files changed, 25 insertions(+), 2 deletions(-) diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index d0747b98ed..2802a5348a 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -42,7 +42,7 @@ dependencies { "api"(project(":worldedit-libs:bukkit")) // Technically this is api, but everyone should already have some form of the bukkit API // Avoid pulling in another one, especially one so outdated. - "localImplementation"("org.spigotmc:spigot-api:1.17-R0.1-SNAPSHOT") { + "localImplementation"("org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT") { exclude("junit", "junit") } @@ -52,7 +52,7 @@ dependencies { "localImplementation"("org.apache.logging.log4j:log4j-api") "compileOnly"("org.jetbrains:annotations:20.1.0") - "compileOnly"("io.papermc.paper:paper-api:1.17-R0.1-SNAPSHOT") { + "compileOnly"("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") { exclude("org.slf4j", "slf4j-api") exclude("junit", "junit") } diff --git a/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java b/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java index 2b75997e00..31c969b323 100644 --- a/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java +++ b/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java @@ -30,6 +30,7 @@ import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.plugin.Plugin; +import org.bukkit.profile.PlayerProfile; import java.util.HashMap; import java.util.HashSet; @@ -144,6 +145,11 @@ public UUID getUniqueId() { return randomUuid; } + @Override + public PlayerProfile getPlayerProfile() { + throw new UnsupportedOperationException("Not supported yet."); + } + @Override public boolean isBanned() { throw new UnsupportedOperationException("Not supported yet."); @@ -278,4 +284,9 @@ public void decrementStatistic(Statistic statistic, EntityType entityType, int a public void setStatistic(Statistic statistic, EntityType entityType, int newValue) { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public Location getLastDeathLocation() { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java index a7c338c941..72b7e0a154 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java @@ -108,6 +108,9 @@ public boolean generate(EditSession editSession, BlockVector3 pos) throws MaxCha return editSession.getWorld().generateTree(this, editSession, pos.subtract(0, 1, 0)); } }, + MANGROVE("Mangrove tree", "mangrove"), + TALL_MANGROVE("Tall mangrove tree", "tall_mangrove"), + CHERRY("Cherry blossom", "cherry"), RANDOM("Random tree", "rand", "random") { @Override public boolean generate(EditSession editSession, BlockVector3 pos) throws MaxChangedBlocksException { diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index 3c882feac4..10b4826704 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -446,6 +446,9 @@ private List> submitChunkLoadTasks(Region region, case WARPED_FUNGUS -> TreeFeatures.WARPED_FUNGUS; case CRIMSON_FUNGUS -> TreeFeatures.CRIMSON_FUNGUS; case CHORUS_PLANT -> EndFeatures.CHORUS_PLANT; + case MANGROVE -> TreeFeatures.MANGROVE; + case TALL_MANGROVE -> TreeFeatures.TALL_MANGROVE; + case CHERRY -> TreeFeatures.CHERRY; case RANDOM -> createTreeFeatureGenerator(TreeType.values()[ThreadLocalRandom.current().nextInt(TreeType.values().length)]); default -> null; }; diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index 8552b3d268..d46fc76308 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -432,6 +432,9 @@ private List> submitChunkLoadTasks(Region region, case WARPED_FUNGUS -> TreeFeatures.WARPED_FUNGUS; case CRIMSON_FUNGUS -> TreeFeatures.CRIMSON_FUNGUS; case CHORUS_PLANT -> EndFeatures.CHORUS_PLANT; + case MANGROVE -> TreeFeatures.MANGROVE; + case TALL_MANGROVE -> TreeFeatures.TALL_MANGROVE; + case CHERRY -> TreeFeatures.CHERRY; case RANDOM -> createTreeFeatureGenerator(TreeType.values()[ThreadLocalRandom.current().nextInt(TreeType.values().length)]); default -> null; }; diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java index f5d53dbab3..2fd2b10842 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java @@ -314,6 +314,9 @@ public boolean regenerate(Region region, Extent extent, RegenOptions options) { case WARPED_FUNGUS -> TreeFeatures.WARPED_FUNGUS; case CRIMSON_FUNGUS -> TreeFeatures.CRIMSON_FUNGUS; case CHORUS_PLANT -> EndFeatures.CHORUS_PLANT; + case MANGROVE -> TreeFeatures.MANGROVE; + case TALL_MANGROVE -> TreeFeatures.TALL_MANGROVE; + case CHERRY -> TreeFeatures.CHERRY; case RANDOM -> createTreeFeatureGenerator(TreeGenerator.TreeType.values()[ThreadLocalRandom.current().nextInt(TreeGenerator.TreeType.values().length)]); default -> null; };