diff --git a/pom.xml b/pom.xml
index 4ee9306fe2..a26c52040e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,9 +27,9 @@
${project.basedir}/.mvn/settings.xml
-
- 1.21
- https://hub.spigotmc.org/javadocs/spigot/
+
+ 1.21
+ https://papermc.io/javadocs
@@ -273,9 +273,9 @@
- org.spigotmc
- spigot-api
- ${spigot.version}-R0.1-SNAPSHOT
+ io.papermc.paper
+ paper-api
+ ${paper.version}-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/BlockDataController.java b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/BlockDataController.java
index 9cae260171..a1ddfc129e 100644
--- a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/BlockDataController.java
+++ b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/BlockDataController.java
@@ -525,9 +525,11 @@ public void getUniversalBlockData(@Nonnull UUID uuid, IAsyncReadCallback getUniversalBlockDataFromCache(@Nonn
return loadedUniversalData.values().stream()
.filter(uniData -> uniData instanceof SlimefunUniversalBlockData ubd
- && ubd.getLastPresent().toLocation().equals(l))
+ && ubd.getLastPresent() != null
+ && l.equals(ubd.getLastPresent().toLocation()))
.map(data -> (SlimefunUniversalBlockData) data)
.findFirst();
}
diff --git a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/ProfileDataController.java b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/ProfileDataController.java
index c57294ecd1..3ef46d09b8 100644
--- a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/ProfileDataController.java
+++ b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/ProfileDataController.java
@@ -349,7 +349,7 @@ public void run() {
return;
}
- if (Bukkit.getOfflinePlayer(UUID.fromString(pUuid)).isOnline()) {
+ if (Bukkit.getOfflinePlayer(UUID.fromString(pUuid)).isConnected()) {
return;
}
diff --git a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/SlimefunUniversalBlockData.java b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/SlimefunUniversalBlockData.java
index c1b4355dd2..4c39783ce1 100644
--- a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/SlimefunUniversalBlockData.java
+++ b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/controller/SlimefunUniversalBlockData.java
@@ -3,7 +3,9 @@
import com.xzavier0722.mc.plugin.slimefun4.storage.controller.attributes.UniversalDataTrait;
import com.xzavier0722.mc.plugin.slimefun4.storage.util.LocationUtils;
import io.github.bakedlibs.dough.blocks.BlockPosition;
+import io.github.thebusybiscuit.slimefun4.implementation.Slimefun;
import java.util.UUID;
+import java.util.logging.Level;
import org.bukkit.Location;
public class SlimefunUniversalBlockData extends SlimefunUniversalData {
@@ -36,7 +38,8 @@ public BlockPosition getLastPresent() {
var data = getData("location");
if (data == null) {
- throw new IllegalArgumentException("UniversalBlockData missing location data");
+ Slimefun.logger().log(Level.WARNING, "UniversalBlockData [" + getUUID() + "] missing location data");
+ return null;
}
lastPresent = new BlockPosition(LocationUtils.toLocation(data));
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/Slimefun.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/Slimefun.java
index fde30a5094..d1670f749a 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/Slimefun.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/Slimefun.java
@@ -258,6 +258,16 @@ public void onEnable() {
// We want to ensure that the Server uses a compatible server software and have no
// incompatible plugins
getServer().getPluginManager().disablePlugin(this);
+ } else if (!PaperLib.isPaper()) {
+ getLogger().log(Level.WARNING, "#######################################################");
+ getLogger().log(Level.WARNING, "");
+ getLogger().log(Level.WARNING, "自 24/12/22 起 Slimefun 汉化版");
+ getLogger().log(Level.WARNING, "转为 Paper 插件, 你必须要使用 Paper");
+ getLogger().log(Level.WARNING, "或其分支才可使用 Slimefun.");
+ getLogger().log(Level.WARNING, "立即下载 Paper: https://papermc.io/downloads/paper");
+ getLogger().log(Level.WARNING, "");
+ getLogger().log(Level.WARNING, "#######################################################");
+ getServer().getPluginManager().disablePlugin(this);
} else {
// The Environment has been validated.
onPluginStart();