diff --git a/pom.xml b/pom.xml
index bbe0d0b..d846276 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
cc.carm.plugin
ultradepository
jar
- 1.2.6
+ 1.3.0
UltraDepository
超级仓库插件,支持设定不同物品的存储仓库。
diff --git a/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginMessages.java b/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginMessages.java
index 8043b13..076a6ef 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginMessages.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginMessages.java
@@ -95,4 +95,8 @@ public class PluginMessages extends MessagesRoot {
"&f数目输入错误,请输入正确的数字!"
);
+ public static final EasyMessage LOAD_FAILED = new EasyMessage(
+ "&c您的背包数据未被正确加载,请重新进入!"
+ );
+
}
diff --git a/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java b/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java
index 38df92e..eeb9480 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/listener/UserListener.java
@@ -1,6 +1,7 @@
package cc.carm.plugin.ultradepository.listener;
import cc.carm.plugin.ultradepository.UltraDepository;
+import cc.carm.plugin.ultradepository.configuration.PluginMessages;
import cc.carm.plugin.ultradepository.data.UserData;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -20,8 +21,8 @@ public class UserListener implements Listener {
return;
}
UUID uuid = event.getUniqueId();
- UltraDepository.getInstance().debug("尝试加载玩家 " + event.getName() + " 的数据...");
- UltraDepository.getUserManager().getDataCache().put(uuid, UltraDepository.getUserManager().loadData(uuid));
+ UltraDepository.getUserManager().getDataCache()
+ .put(uuid, UltraDepository.getUserManager().loadData(uuid));
}
@EventHandler(priority = EventPriority.MONITOR)
@@ -36,7 +37,7 @@ public class UserListener implements Listener {
UserData data = UltraDepository.getUserManager().getData(e.getPlayer().getUniqueId());
if (data == null) {
e.setResult(PlayerLoginEvent.Result.KICK_OTHER);
- e.setKickMessage(UltraDepository.getInstance().getName() + " 数据未被正确加载,请重新进入。");
+ e.setKickMessage(PluginMessages.LOAD_FAILED.get(e.getPlayer()));
}
}
@@ -44,7 +45,8 @@ public class UserListener implements Listener {
public void onQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
UUID playerUUID = player.getUniqueId();
- UltraDepository.getInstance().getScheduler().runAsync(() -> UltraDepository.getUserManager().unloadData(playerUUID, true));
+ UltraDepository.getInstance().getScheduler()
+ .runAsync(() -> UltraDepository.getUserManager().unloadData(playerUUID, true));
}
}
diff --git a/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java b/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java
index 3a6d981..f0f6619 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/manager/UserManager.java
@@ -32,7 +32,7 @@ public class UserManager {
try {
long start = System.currentTimeMillis();
DataStorage storage = UltraDepository.getStorage();
- UltraDepository.getInstance().debug("正通过 " + storage.getClass().getSimpleName() + " 加载 " + userUUID + " 的用户数据...");
+ UltraDepository.getInstance().debug("正通过 " + storage.getClass().getSimpleName() + " 加载 " + userUUID + " 的用户数据...(" + System.currentTimeMillis() + ")");
UserData data = UltraDepository.getStorage().loadData(userUUID);
if (data == null) {
@@ -64,7 +64,7 @@ public class UserManager {
long start = System.currentTimeMillis();
DataStorage storage = UltraDepository.getStorage();
- UltraDepository.getInstance().debug("正通过 " + storage.getClass().getSimpleName() + " 保存 " + data.getUserUUID() + " 的用户数据...");
+ UltraDepository.getInstance().debug("正通过 " + storage.getClass().getSimpleName() + " 保存 " + data.getUserUUID() + " 的用户数据...(" + System.currentTimeMillis() + ")");
storage.saveUserData(data);
UltraDepository.getInstance().debug("通过 " + storage.getClass().getSimpleName() + " 保存 " + data.getUserUUID() + " 的用户数据完成," +
diff --git a/src/main/java/cc/carm/plugin/ultradepository/storage/DataStorage.java b/src/main/java/cc/carm/plugin/ultradepository/storage/DataStorage.java
index 16fca45..c18f573 100644
--- a/src/main/java/cc/carm/plugin/ultradepository/storage/DataStorage.java
+++ b/src/main/java/cc/carm/plugin/ultradepository/storage/DataStorage.java
@@ -1,6 +1,7 @@
package cc.carm.plugin.ultradepository.storage;
import cc.carm.plugin.ultradepository.data.UserData;
+import cc.carm.plugin.ultradepository.manager.UserManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -8,14 +9,38 @@ import java.util.UUID;
public interface DataStorage {
-
+ /**
+ * 在插件加载存储源时执行。
+ *
+ * @return 是否初始化成功
+ */
boolean initialize();
+ /**
+ * 在插件被卸载时执行。
+ */
void shutdown();
+ /**
+ * 用于加载用户数据的方法。该方法将会被异步运行!
+ *
该方法一般无需自行执行,见 {@link UserManager#loadData(UUID)}
+ *
+ *
若不存在该用户的数据,请返回 null 。
+ *
若加载出现任何错误,请抛出异常。
+ *
+ * @param uuid 用户UUID
+ * @throws Exception 当出现任何错误时抛出
+ */
@Nullable
UserData loadData(@NotNull UUID uuid) throws Exception;
+ /**
+ * 用于保存用户数据的方法。 该方法将会被异步运行!
+ *
该方法一般无需自行执行,见 {@link UserManager#saveData(UserData)}
+ *
+ * @param data 用户数据
+ * @throws Exception 当出现任何错误时抛出
+ */
void saveUserData(@NotNull UserData data) throws Exception;
/**