diff --git a/pom.xml b/pom.xml
index 680e26dd8..4478937a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
com.alpsbte
PlotSystem
- 4.1.4
+ 4.2.0
@@ -99,9 +99,9 @@
- com.onarandombox.multiversecore
- Multiverse-Core
- 4.3.1
+ org.mvplugins.multiverse.core
+ multiverse-core
+ 5.3.0
provided
@@ -115,7 +115,7 @@
com.alpsbte
canvas
- 1.1
+ 1.3
compile
@@ -136,7 +136,7 @@
com.alpsbte.alpslib
alpslib-io
- 1.0.38
+ 1.2.0
com.alpsbte.alpslib
@@ -147,7 +147,7 @@
com.alpsbte.alpslib
alpslib-utils
- 1.3.4
+ 1.3.5
compile
@@ -187,24 +187,30 @@
- com.comphenix.protocol
+ net.dmulloy2
ProtocolLib
- 5.1.0
+ 5.4.0
provided
de.oliver
FancyNpcs
- 2.4.0
+ 2.7.0
provided
li.cinnazeyy
- LangLibs
- 1.5
+ LangLibs-API
+ 1.5.1
provided
+
+
+ commons-io
+ commons-io
+ 2.20.0
+
@@ -246,7 +252,7 @@
src/main/java/
- ${project.artifactId}-${project.version}-${build.number}
+ ${project.artifactId}-${project.version}${build.number}
org.apache.maven.plugins
diff --git a/src/main/java/com/alpsbte/plotsystem/PlotSystem.java b/src/main/java/com/alpsbte/plotsystem/PlotSystem.java
index 011bf1480..0a907d5fa 100644
--- a/src/main/java/com/alpsbte/plotsystem/PlotSystem.java
+++ b/src/main/java/com/alpsbte/plotsystem/PlotSystem.java
@@ -49,7 +49,6 @@
import com.alpsbte.plotsystem.utils.io.LangUtil;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
-import com.onarandombox.MultiverseCore.MultiverseCore;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import de.oliver.fancynpcs.api.FancyNpcsPlugin;
@@ -61,6 +60,7 @@
import org.bukkit.plugin.java.JavaPlugin;
import org.ipvp.canvas.MenuFunctionListener;
import org.jetbrains.annotations.NotNull;
+import org.mvplugins.multiverse.core.MultiverseCoreApi;
import java.io.IOException;
import java.io.InputStream;
@@ -346,8 +346,8 @@ public static String getMultiverseInventoriesConfigPath(String worldName) {
/**
* @return Multiverse-Core instance
*/
- public static MultiverseCore getMultiverseCore() {
- return (MultiverseCore) plugin.getServer().getPluginManager().getPlugin("Multiverse-Core");
+ public static MultiverseCoreApi getMultiverseCore() {
+ return MultiverseCoreApi.get();
}
/**
diff --git a/src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/PlotWorldGenerator.java b/src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/PlotWorldGenerator.java
index 15e10d5f5..7b44be706 100644
--- a/src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/PlotWorldGenerator.java
+++ b/src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/PlotWorldGenerator.java
@@ -25,8 +25,6 @@
package com.alpsbte.plotsystem.core.system.plot.generator;
import com.alpsbte.plotsystem.PlotSystem;
-import com.onarandombox.MultiverseCore.api.MVWorldManager;
-import com.onarandombox.MultiverseCore.api.MultiverseWorld;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.protection.flags.Flags;
@@ -37,7 +35,12 @@
import com.sk89q.worldguard.protection.regions.GlobalProtectedRegion;
import com.sk89q.worldguard.protection.regions.RegionContainer;
import org.bukkit.*;
+import org.bukkit.entity.SpawnCategory;
import org.bukkit.generator.ChunkGenerator;
+import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
+import org.mvplugins.multiverse.core.world.WorldManager;
+import org.mvplugins.multiverse.core.world.options.ImportWorldOptions;
+import org.mvplugins.multiverse.external.vavr.control.Option;
import javax.annotation.Nonnull;
import java.util.Objects;
@@ -46,7 +49,7 @@
import static net.kyori.adventure.text.Component.text;
public class PlotWorldGenerator {
- private final MVWorldManager worldManager = PlotSystem.DependencyManager.getMultiverseCore().getMVWorldManager();
+ private final WorldManager worldManager = PlotSystem.DependencyManager.getMultiverseCore().getWorldManager();
private WorldCreator worldCreator;
private final String worldName;
@@ -74,9 +77,13 @@ protected void generateWorld() {
protected void createMultiverseWorld() throws Exception {
// Check if world creator is configured and add new world to multiverse world manager
if (worldCreator != null) {
- if (!worldManager.isMVWorld(worldName))
- worldManager.addWorld(worldName, environment, null, worldType, false,
- "VoidGen:{\"caves\":false,\"decoration\":false,\"mobs\":false,\"structures\":false}", false);
+ if (!worldManager.isLoadedWorld(worldName)) {
+ worldManager.importWorld(ImportWorldOptions.worldName(worldName)
+ .environment(environment)
+ .generator("VoidGen:{\"caves\":false,\"decoration\":false,\"mobs\":false,\"structures\":false}")
+ .useSpawnAdjust(false)
+ );
+ }
} else {
throw new Exception("World Creator is not configured");
}
@@ -84,7 +91,12 @@ protected void createMultiverseWorld() throws Exception {
protected void configureWorld() {
World bukkitWorld = Bukkit.getWorld(worldName);
- MultiverseWorld mvWorld = worldManager.getMVWorld(bukkitWorld);
+ Option mvWorld = worldManager.getLoadedWorld(worldName);
+
+ if (mvWorld.isEmpty()) {
+ PlotSystem.getPlugin().getComponentLogger().warn(text("Multiverse world" + worldName + " is not loaded! Skipping world configuration..."));
+ return;
+ }
// Set world time to midday
assert bukkitWorld != null;
@@ -100,14 +112,14 @@ protected void configureWorld() {
bukkitWorld.setGameRule(GameRule.ANNOUNCE_ADVANCEMENTS, false);
// Configure multiverse world
- mvWorld.setAllowFlight(true);
- mvWorld.setGameMode(GameMode.CREATIVE);
- mvWorld.setEnableWeather(false);
- mvWorld.setDifficulty(Difficulty.PEACEFUL);
- mvWorld.setAllowAnimalSpawn(false);
- mvWorld.setAllowMonsterSpawn(false);
- mvWorld.setAutoLoad(false);
- mvWorld.setKeepSpawnInMemory(false);
+ mvWorld.get().setAllowFlight(true);
+ mvWorld.get().setGameMode(GameMode.CREATIVE);
+ mvWorld.get().setAllowWeather(false);
+ mvWorld.get().setDifficulty(Difficulty.PEACEFUL);
+ mvWorld.get().getEntitySpawnConfig().getSpawnCategoryConfig(SpawnCategory.ANIMAL).setSpawn(false);
+ mvWorld.get().getEntitySpawnConfig().getSpawnCategoryConfig(SpawnCategory.MONSTER).setSpawn(false);
+ mvWorld.get().setAutoLoad(false);
+ mvWorld.get().setKeepSpawnInMemory(false);
worldManager.saveWorldsConfig();
}
diff --git a/src/main/java/com/alpsbte/plotsystem/core/system/plot/utils/PlotUtils.java b/src/main/java/com/alpsbte/plotsystem/core/system/plot/utils/PlotUtils.java
index c33d62104..a1679c3a7 100644
--- a/src/main/java/com/alpsbte/plotsystem/core/system/plot/utils/PlotUtils.java
+++ b/src/main/java/com/alpsbte/plotsystem/core/system/plot/utils/PlotUtils.java
@@ -190,8 +190,8 @@ public static boolean isPlayerOnPlot(@NotNull AbstractPlot plot, Player player)
return null;
}
- public static boolean isPlotWorld(World world) {
- return PlotSystem.DependencyManager.getMultiverseCore().getMVWorldManager().isMVWorld(world) && (PlotWorld.isOnePlotWorld(world.getName()) || PlotWorld.isCityPlotWorld(world.getName()));
+ public static boolean isPlotWorld(@NotNull World world) {
+ return PlotSystem.DependencyManager.getMultiverseCore().getWorldManager().isLoadedWorld(world) && (PlotWorld.isOnePlotWorld(world.getName()) || PlotWorld.isCityPlotWorld(world.getName()));
}
diff --git a/src/main/java/com/alpsbte/plotsystem/core/system/plot/world/PlotWorld.java b/src/main/java/com/alpsbte/plotsystem/core/system/plot/world/PlotWorld.java
index b62db7ac7..cbabe15cc 100644
--- a/src/main/java/com/alpsbte/plotsystem/core/system/plot/world/PlotWorld.java
+++ b/src/main/java/com/alpsbte/plotsystem/core/system/plot/world/PlotWorld.java
@@ -31,7 +31,6 @@
import com.alpsbte.plotsystem.core.system.plot.generator.AbstractPlotGenerator;
import com.alpsbte.plotsystem.utils.Utils;
import com.fastasyncworldedit.core.FaweAPI;
-import com.onarandombox.MultiverseCore.MultiverseCore;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.math.BlockVector3;
@@ -46,6 +45,8 @@
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.mvplugins.multiverse.core.MultiverseCoreApi;
+import org.mvplugins.multiverse.core.world.options.DeleteWorldOptions;
import java.io.File;
import java.io.IOException;
@@ -59,7 +60,7 @@ public class PlotWorld implements IWorld {
public static final int MAX_WORLD_HEIGHT = 256;
public static final int MIN_WORLD_HEIGHT = 5;
- private final MultiverseCore mvCore = PlotSystem.DependencyManager.getMultiverseCore();
+ private final MultiverseCoreApi mvCore = PlotSystem.DependencyManager.getMultiverseCore();
private final String worldName;
private final AbstractPlot plot;
@@ -81,7 +82,9 @@ public boolean regenWorld(@NotNull Class ge
@Override
public boolean deleteWorld() {
if (isWorldGenerated() && loadWorld()) {
- if (mvCore.getMVWorldManager().deleteWorld(getWorldName(), true, true) && mvCore.saveWorldConfig()) {
+ if (Boolean.TRUE.equals(mvCore.getWorldManager().getWorld(getWorldName())
+ .map(world -> mvCore.getWorldManager().deleteWorld(DeleteWorldOptions.world(world)).isSuccess())
+ .getOrElse(false)) && mvCore.getWorldManager().saveWorldsConfig().isSuccess()) {
try {
File multiverseInventoriesConfig = new File(PlotSystem.DependencyManager.getMultiverseInventoriesConfigPath(getWorldName()));
File worldGuardConfig = new File(PlotSystem.DependencyManager.getWorldGuardConfigPath(getWorldName()));
@@ -102,7 +105,7 @@ public boolean loadWorld() {
if (isWorldGenerated()) {
if (isWorldLoaded()) {
return true;
- } else return mvCore.getMVWorldManager().loadWorld(getWorldName()) || isWorldLoaded();
+ } else return mvCore.getWorldManager().loadWorld(getWorldName()).isSuccess() || isWorldLoaded();
} else PlotSystem.getPlugin().getComponentLogger().warn(text("Could not load world " + worldName + " because it is not generated!"));
return false;
}
@@ -145,7 +148,7 @@ public Location getSpawnPoint(BlockVector3 plotVector) {
}
// Set spawn point 1 block above the highest block at the spawn location
- spawnLocation.setY(getBukkitWorld().getHighestBlockYAt((int) spawnLocation.getX(), (int) spawnLocation.getZ()) + 1);
+ spawnLocation.setY(getBukkitWorld().getHighestBlockYAt((int) spawnLocation.getX(), (int) spawnLocation.getZ()) + 1d);
return spawnLocation;
}
return null;
@@ -199,7 +202,7 @@ public boolean isWorldLoaded() {
@Override
public boolean isWorldGenerated() {
- return mvCore.getMVWorldManager().getMVWorld(worldName) != null || mvCore.getMVWorldManager().getUnloadedWorlds().contains(worldName);
+ return mvCore.getWorldManager().getWorld(worldName).isDefined();
}
private ProtectedRegion getRegion(String regionName) {
diff --git a/src/main/java/com/alpsbte/plotsystem/core/system/tutorial/utils/TutorialNPC.java b/src/main/java/com/alpsbte/plotsystem/core/system/tutorial/utils/TutorialNPC.java
index 87c97b007..bed2b72f2 100644
--- a/src/main/java/com/alpsbte/plotsystem/core/system/tutorial/utils/TutorialNPC.java
+++ b/src/main/java/com/alpsbte/plotsystem/core/system/tutorial/utils/TutorialNPC.java
@@ -27,7 +27,7 @@
import de.oliver.fancynpcs.api.FancyNpcsPlugin;
import de.oliver.fancynpcs.api.Npc;
import de.oliver.fancynpcs.api.NpcData;
-import de.oliver.fancynpcs.api.utils.SkinFetcher;
+import de.oliver.fancynpcs.api.skins.SkinData;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@@ -44,7 +44,7 @@ public class TutorialNPC {
private final String id;
private final String displayName;
private final String interactionPrompt;
- private final SkinFetcher.SkinData skin;
+ private final SkinData skin;
private Npc npc;
private TutorialNPCHologram hologram;
@@ -61,7 +61,7 @@ public TutorialNPC(String npcId, String npcDisplayName, String npcInteractionPro
this.id = npcId;
this.displayName = npcDisplayName;
this.interactionPrompt = npcInteractionPrompt;
- this.skin = new SkinFetcher.SkinData(npcId, npcSknTexture, npcSkinSignature);
+ this.skin = new SkinData(npcId, SkinData.SkinVariant.AUTO, npcSknTexture, npcSkinSignature);
}
/**
@@ -74,7 +74,7 @@ public void create(Location spawnPos) {
NpcData npcData = new NpcData(id, UUID.randomUUID(), spawnPos);
npc = FancyNpcsPlugin.get().getNpcAdapter().apply(npcData);
- npc.getData().setSkin(skin);
+ npc.getData().setSkinData(skin);
npc.getData().setDisplayName(EMPTY_TAG);
npc.getData().setTurnToPlayer(true);
npc.setSaveToFile(false);
@@ -158,7 +158,7 @@ public String getInteractionPrompt() {
return interactionPrompt;
}
- public SkinFetcher.SkinData getSkin() {
+ public SkinData getSkin() {
return skin;
}
}
diff --git a/src/main/java/com/alpsbte/plotsystem/utils/Utils.java b/src/main/java/com/alpsbte/plotsystem/utils/Utils.java
index ee74b6e02..fb2206a74 100644
--- a/src/main/java/com/alpsbte/plotsystem/utils/Utils.java
+++ b/src/main/java/com/alpsbte/plotsystem/utils/Utils.java
@@ -36,7 +36,6 @@
import com.alpsbte.plotsystem.utils.io.LangPaths;
import com.alpsbte.plotsystem.utils.io.LangUtil;
import com.alpsbte.plotsystem.utils.items.CustomHeads;
-import com.onarandombox.MultiverseCore.api.MultiverseWorld;
import com.sk89q.worldedit.math.BlockVector2;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
@@ -53,6 +52,8 @@
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
+import org.mvplugins.multiverse.external.vavr.control.Option;
import java.sql.SQLException;
import java.time.LocalDateTime;
@@ -79,14 +80,14 @@ public static Location getSpawnLocation() {
if (!Objects.requireNonNull(config.getString(ConfigPaths.SPAWN_WORLD)).equalsIgnoreCase("default")) {
try {
- MultiverseWorld spawnWorld = PlotSystem.DependencyManager.getMultiverseCore().getMVWorldManager().getMVWorld(config.getString(ConfigPaths.SPAWN_WORLD));
- return spawnWorld.getSpawnLocation();
+ Option spawnWorld = PlotSystem.DependencyManager.getMultiverseCore().getWorldManager().getLoadedWorld(config.getString(ConfigPaths.SPAWN_WORLD));
+ return spawnWorld.get().getSpawnLocation();
} catch (Exception ignore) {
PlotSystem.getPlugin().getComponentLogger().warn(text("Could not find %s in multiverse config!"), ConfigPaths.SPAWN_WORLD);
}
}
- return PlotSystem.DependencyManager.getMultiverseCore().getMVWorldManager().getSpawnWorld().getSpawnLocation();
+ return PlotSystem.DependencyManager.getMultiverseCore().getWorldManager().getDefaultWorld().get().getSpawnLocation();
}
public static void updatePlayerInventorySlots(Player player) {
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 0e8923cfc..190643ce2 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,5 +1,5 @@
main: com.alpsbte.plotsystem.PlotSystem
-version: 4.1.3
+version: 4.2.0
api-version: "1.21"
name: Plot-System
author: R3tuxn & Cinnazeyy