RegisterBlockData = new HashMap<>();
private static boolean ReadFinish = false;
- private static boolean ThrowException = false;
private static int WaitListSize = 0;
/**
@@ -56,16 +55,6 @@ public static void saveData() {
saveRegisterBlockData(BLOCK_DAT);
}
- /**
- * 这个方法仅在op使用
- * /bedrocktechnology(bekt) reload
- * 时调用
- */
- public static void reloadData() {
- if (ReadFinish) ReadFinish = false;
- readData();
- }
-
/**
* 这个方法将启动BedrockTechnology的自动保存计时器
*/
@@ -141,39 +130,22 @@ public static void remove(String key) {
/**
* 得到方块数据
* @param key 通过坐标计算得来的key
- * @return 方块的BlockData
+ * @return 方块数据
*/
- public static PlayerBlock getBlockData(String key) {
+ public static String getBlockData(String key) {
return RegisterBlockData.get(key);
}
/**
* 向RegisterBlockData中放置方块数据
* @param key 通过坐标计算得来的关键字
- * @param value 方块的BlockData
+ * @param value 方块数据
*/
- public static void putBlockData(String key, PlayerBlock value) {
+ public static void putBlockData(String key, String value) {
RegisterBlockData.put(key,value);
addWait();
}
-
- /**
- * 这个方法将返回是否未读取完成
- * @return 是否仍然未读取完成
- */
- public static boolean isNotReadFinish() {
- return !ReadFinish;
- }
-
- /**
- * return now read situation
- * @return read situation, a String
- */
- public static String getReadSituation() {
- return ThrowException ? "读取发生异常,请向管理汇报" : (ReadFinish ? "读取完成" : "读取尚未完成,请稍加等待");
- }
-
/**
* read the register data
* @param file file for save register data
@@ -181,7 +153,7 @@ public static String getReadSituation() {
@SuppressWarnings("unchecked")
private static void readRegisterBlockData(File file) {
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file))) {
- RegisterBlockData = (HashMap) in.readObject();
+ RegisterBlockData = (HashMap) in.readObject();
ReadFinish = true;
} catch (EOFException e) {
//出现 EOF 往往都是文件第一次创建时导致的,此时我们只需把RegisterBlockData初始化即可,无需打印堆栈
@@ -189,7 +161,6 @@ private static void readRegisterBlockData(File file) {
ReadFinish = true;
} catch (IOException | ClassNotFoundException e) {
ExceptionHandler.writeException(e, "readRegisterBlockData", "在读取注册数据时抛出异常", StickData.class);
- ThrowException = true;
}
}
diff --git a/src/main/java/me/ctimet/specialbekt/items/FixStick.java b/src/main/java/me/ctimet/specialbekt/items/FixStick.java
index 023aac1..1b9924d 100644
--- a/src/main/java/me/ctimet/specialbekt/items/FixStick.java
+++ b/src/main/java/me/ctimet/specialbekt/items/FixStick.java
@@ -6,13 +6,11 @@
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack;
import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType;
import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler;
-import me.ctimet.specialbekt.data.PlayerBlock;
import me.ctimet.specialbekt.data.StickData;
import me.ctimet.specialbekt.log.Chat;
import me.ctimet.specialbekt.log.Color;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import org.bukkit.Location;
-import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
@@ -43,18 +41,13 @@ private static void onClick(PlayerRightClickEvent event) {
String xyz = location.getX() + "&" + location.getY() + "&" + location.getZ() + "&" + Objects.requireNonNull(location.getWorld()).getName();
- PlayerBlock pb = StickData.getBlockData(xyz);
- if (pb != null) {
- Material material = pb.material();
- if (material == block.getType()) {
- BlockStorage.setBlockInfo(block, pb.json(), true);
- StickData.remove(xyz);
- chat.sendInfo("方块已修复");
- } else {
- chat.sendErr("方块类型匹配错误!插件无法修复方块");
- }
+ String json = StickData.getBlockData(xyz);
+ if (json != null) {
+ BlockStorage.setBlockInfo(block, json, true);
+ StickData.remove(xyz);
+ chat.sendInfo("方块已被修复");
} else {
- chat.sendMessageWithoutHead("该方块未被注册,插件无法修复", Color.YELLOW);
+ chat.sendErr("该方块未被注册,不可修复!");
}
}
}
diff --git a/src/main/java/me/ctimet/specialbekt/items/RegisterStick.java b/src/main/java/me/ctimet/specialbekt/items/RegisterStick.java
index 9605aa7..3c0aa96 100644
--- a/src/main/java/me/ctimet/specialbekt/items/RegisterStick.java
+++ b/src/main/java/me/ctimet/specialbekt/items/RegisterStick.java
@@ -1,7 +1,6 @@
package me.ctimet.specialbekt.items;
import me.ctimet.specialbekt.log.Chat;
-import me.ctimet.specialbekt.data.PlayerBlock;
import me.ctimet.specialbekt.data.StickData;
import me.ctimet.specialbekt.log.Color;
import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent;
@@ -44,8 +43,6 @@ public static void registerBlock(Player player, Block block) {
return;
}
- String Json = BlockStorage.getBlockInfoAsJson(block);
-
Location location = block.getLocation();
String xyz = location.getX() + "&" + location.getY() + "&" + location.getZ() + "&" + Objects.requireNonNull(location.getWorld()).getName();
@@ -54,8 +51,7 @@ public static void registerBlock(Player player, Block block) {
return;
}
- PlayerBlock pb = new PlayerBlock(Json, block.getType());
- StickData.putBlockData(xyz, pb);
+ StickData.putBlockData(xyz, BlockStorage.getBlockInfoAsJson(block));
chat.sendMessageWithoutHead("方块已成功注册", Color.GREEN);
}
diff --git a/src/main/java/me/ctimet/specialbekt/log/Chat.java b/src/main/java/me/ctimet/specialbekt/log/Chat.java
index e9f13f9..18fb6d0 100644
--- a/src/main/java/me/ctimet/specialbekt/log/Chat.java
+++ b/src/main/java/me/ctimet/specialbekt/log/Chat.java
@@ -1,6 +1,5 @@
package me.ctimet.specialbekt.log;
-import me.ctimet.specialbekt.chat.Color;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
diff --git a/src/main/resources/block.dat b/src/main/resources/block.dat
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index c696723..0c8b95f 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,7 +1,7 @@
name: SpecialBekt
author: CTimet
description: A generic Slimefun4-Addon
-main: me.ctimet.specialbekt
+main: me.ctimet.specialbekt.Main
website: https://github.com/CTimet/SpecialBekt
version: ${project.version}
api-version: 1.17