Merge branch 'master' into dev/7.0-2

This commit is contained in:
Zoë Gidiere
2025-06-18 11:20:58 -06:00
10 changed files with 83 additions and 15 deletions

View File

@@ -7,6 +7,8 @@ dependencies {
compileOnly("io.papermc.paper", "paper-api", Versions.Bukkit.paper)
compileOnly("org.mvplugins.multiverse.core", "multiverse-core", Versions.Bukkit.multiverse)
shadedApi("io.papermc", "paperlib", Versions.Bukkit.paperLib)
shadedApi("com.google.guava", "guava", Versions.Libraries.Internal.guava)

View File

@@ -87,7 +87,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
return;
}
Bukkit.getPluginManager().registerEvents(new CommonListener(), this); // Register master event listener
Bukkit.getPluginManager().registerEvents(new CommonListener(platform), this); // Register master event listener
PaperUtil.checkPaper(this);
}

View File

@@ -0,0 +1,47 @@
package com.dfsek.terra.bukkit.hooks;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.registry.key.Keyed;
import org.mvplugins.multiverse.core.world.generators.GeneratorPlugin;
import org.mvplugins.multiverse.external.jetbrains.annotations.NotNull;
import org.mvplugins.multiverse.external.jetbrains.annotations.Nullable;
import java.util.Collection;
public final class MultiverseGeneratorPluginHook implements GeneratorPlugin {
private final Platform platform;
public MultiverseGeneratorPluginHook(Platform platform) {
this.platform = platform;
}
@Override
public @NotNull Collection<String> suggestIds(@Nullable String s) {
return platform.getConfigRegistry().entries().stream()
.map(Keyed::getID)
.toList();
}
@Override
public @Nullable Collection<String> getExampleUsages() {
return platform.getConfigRegistry()
.entries()
.stream()
.map(Keyed::getID)
.map("/mv create example_world NORMAL -g Terra:%s"::formatted)
.limit(5) // reasonable amount
.toList();
}
@Override
public @Nullable String getInfoLink() {
return "https://terra.polydev.org/";
}
@Override
public @NotNull String getPluginName() {
return "Terra";
}
}

View File

@@ -17,13 +17,40 @@
package com.dfsek.terra.bukkit.listeners;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.bukkit.hooks.MultiverseGeneratorPluginHook;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.PluginEnableEvent;
import org.mvplugins.multiverse.core.MultiverseCoreApi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Listener for events on all implementations.
*/
public class CommonListener implements Listener {
public CommonListener() {
private static final Logger logger = LoggerFactory.getLogger(CommonListener.class);
private final Platform platform;
public CommonListener(Platform platform) {
this.platform = platform;
}
@EventHandler
public void onPluginEnable(PluginEnableEvent event) {
if(event.getPlugin().getName().equals("Multiverse-Core")) {
try {
Class.forName("org.mvplugins.multiverse.core.MultiverseCoreApi");
MultiverseCoreApi.get().getGeneratorProvider()
.registerGeneratorPlugin(new MultiverseGeneratorPluginHook(platform));
} catch(ClassNotFoundException e) {
logger.debug("Multiverse v5 is not installed.");
} catch(IllegalStateException e) {
logger.error("Failed to register Terra generator plugin to multiverse.", e);
}
}
}
}

View File

@@ -35,7 +35,7 @@
"depends": {
"fabricloader": ">=0.16.10",
"java": ">=21",
"minecraft": ">=1.21.5",
"minecraft": ">=1.21.6",
"fabric": "*"
}
}

View File

@@ -19,8 +19,6 @@ import java.net.Proxy;
import com.dfsek.terra.lifecycle.LifecyclePlatform;
import static com.dfsek.terra.lifecycle.util.LifecycleUtil.initialized;
@Mixin(MinecraftServer.class)
public class MinecraftServerMixin {

View File

@@ -49,8 +49,6 @@ import com.dfsek.terra.lifecycle.LifecyclePlatform;
import com.dfsek.terra.lifecycle.util.LifecycleUtil;
import com.dfsek.terra.lifecycle.util.RegistryHack;
import static com.dfsek.terra.lifecycle.util.LifecycleUtil.initialized;
@Mixin(RegistryLoader.class)
public class RegistryLoaderMixin {

View File

@@ -12,8 +12,6 @@ import com.dfsek.terra.mod.CommonPlatform;
public final class LifecycleUtil {
public static boolean initialized = false;
private LifecycleUtil() {
}