From 617c2b16093775f1d13cca8b17874bd145d4c870 Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Tue, 13 Aug 2024 15:40:26 +0800 Subject: [PATCH] Code clean up --- .../item/custom/AbstractCustomListener.java | 3 - .../compatibility/quest/BattlePassHook.java | 1 - .../dependencies/DependencyRepository.java | 1 - .../mechanic/action/ActionManagerImpl.java | 2 - .../mechanic/item/impl/WateringCanConfig.java | 1 - .../mechanic/world/WorldManagerImpl.java | 14 +++-- .../world/adaptor/SlimeWorldAdaptor.java | 57 +++++++------------ plugin/src/main/resources/plugin.yml | 1 + 8 files changed, 32 insertions(+), 48 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/mechanic/item/custom/AbstractCustomListener.java b/api/src/main/java/net/momirealms/customcrops/api/mechanic/item/custom/AbstractCustomListener.java index 2d173e6..b60ab43 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/mechanic/item/custom/AbstractCustomListener.java +++ b/api/src/main/java/net/momirealms/customcrops/api/mechanic/item/custom/AbstractCustomListener.java @@ -28,10 +28,7 @@ import net.momirealms.customcrops.api.mechanic.requirement.State; import net.momirealms.customcrops.api.mechanic.world.CustomCropsBlock; import net.momirealms.customcrops.api.mechanic.world.SimpleLocation; import net.momirealms.customcrops.api.mechanic.world.level.WorldCrop; -import net.momirealms.customcrops.api.mechanic.world.level.WorldGlass; -import net.momirealms.customcrops.api.mechanic.world.level.WorldPot; import net.momirealms.customcrops.api.util.EventUtils; -import net.momirealms.customcrops.api.util.LogUtils; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; diff --git a/plugin/src/main/java/net/momirealms/customcrops/compatibility/quest/BattlePassHook.java b/plugin/src/main/java/net/momirealms/customcrops/compatibility/quest/BattlePassHook.java index f1fb6b7..2831efa 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/compatibility/quest/BattlePassHook.java +++ b/plugin/src/main/java/net/momirealms/customcrops/compatibility/quest/BattlePassHook.java @@ -26,7 +26,6 @@ import net.momirealms.customcrops.api.event.CropBreakEvent; import net.momirealms.customcrops.api.event.CropPlantEvent; import net.momirealms.customcrops.api.mechanic.item.Crop; import net.momirealms.customcrops.api.mechanic.world.level.WorldCrop; -import net.momirealms.customcrops.api.util.LogUtils; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/DependencyRepository.java b/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/DependencyRepository.java index 31ed18f..d41347f 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/DependencyRepository.java +++ b/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/DependencyRepository.java @@ -33,7 +33,6 @@ import java.net.URL; import java.net.URLConnection; import java.nio.file.Files; import java.nio.file.Path; -import java.util.concurrent.TimeUnit; /** * Represents a repository which contains {@link Dependency}s. diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/action/ActionManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/action/ActionManagerImpl.java index da619f2..3aef046 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/action/ActionManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/action/ActionManagerImpl.java @@ -17,8 +17,6 @@ package net.momirealms.customcrops.mechanic.action; -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.PacketContainer; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/impl/WateringCanConfig.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/impl/WateringCanConfig.java index 96caabf..537f05f 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/impl/WateringCanConfig.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/impl/WateringCanConfig.java @@ -17,7 +17,6 @@ package net.momirealms.customcrops.mechanic.item.impl; -import com.saicone.rtag.item.ItemObject; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ScoreComponent; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/WorldManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/WorldManagerImpl.java index 542e177..fa1d9d8 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/WorldManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/WorldManagerImpl.java @@ -62,12 +62,16 @@ public class WorldManagerImpl implements WorldManager, Listener { this.plugin = plugin; this.loadedWorlds = new ConcurrentHashMap<>(); this.worldSettingMap = new HashMap<>(); - if (Bukkit.getPluginManager().isPluginEnabled("SlimeWorldManager")) { + try { + // to ignore the warning from asp + Class.forName("com.infernalsuite.aswm.api.SlimePlugin"); this.worldAdaptor = new SlimeWorldAdaptor(this, 1); - } else if (Bukkit.getPluginManager().isPluginEnabled("SlimeWorldPlugin")) { - this.worldAdaptor = new SlimeWorldAdaptor(this, 2); - } else { - this.worldAdaptor = new BukkitWorldAdaptor(this); + } catch (ClassNotFoundException e) { + if (Bukkit.getPluginManager().isPluginEnabled("SlimeWorldPlugin")) { + this.worldAdaptor = new SlimeWorldAdaptor(this, 2); + } else { + this.worldAdaptor = new BukkitWorldAdaptor(this); + } } } diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/SlimeWorldAdaptor.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/SlimeWorldAdaptor.java index 66345e5..679d859 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/SlimeWorldAdaptor.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/SlimeWorldAdaptor.java @@ -18,7 +18,6 @@ package net.momirealms.customcrops.mechanic.world.adaptor; import com.flowpowered.nbt.*; -import com.infernalsuite.aswm.api.SlimePlugin; import com.infernalsuite.aswm.api.events.LoadSlimeWorldEvent; import com.infernalsuite.aswm.api.world.SlimeWorld; import net.momirealms.customcrops.api.CustomCropsPlugin; @@ -84,6 +83,18 @@ public class SlimeWorldAdaptor extends BukkitWorldAdaptor { } } + private CompoundMap createOrGetDataMap(SlimeWorld world) { + Optional optionalCompoundTag = world.getExtraData().getAsCompoundTag("customcrops"); + CompoundMap ccDataMap; + if (optionalCompoundTag.isEmpty()) { + ccDataMap = new CompoundMap(); + world.getExtraData().getValue().put(new CompoundTag("customcrops", ccDataMap)); + } else { + ccDataMap = optionalCompoundTag.get().getValue(); + } + return ccDataMap; + } + @EventHandler (ignoreCancelled = true) public void onSlimeWorldLoad(LoadSlimeWorldEvent event) { World world = Bukkit.getWorld(event.getSlimeWorld().getName()); @@ -103,14 +114,7 @@ public class SlimeWorldAdaptor extends BukkitWorldAdaptor { super.saveInfoData(customCropsWorld); return; } - - Optional optionalCompoundTag = slimeWorld.getExtraData().getAsCompoundTag("customcrops"); - if (optionalCompoundTag.isEmpty()) { - LogUtils.warn("Failed to unload data for world " + customCropsWorld.getWorldName() + " because slime world format is incorrect."); - return; - } - - CompoundMap ccDataMap = optionalCompoundTag.get().getValue(); + CompoundMap ccDataMap = createOrGetDataMap(slimeWorld); ccDataMap.put(new StringTag("world-info", gson.toJson(customCropsWorld.getInfoData()))); } @@ -132,15 +136,7 @@ public class SlimeWorldAdaptor extends BukkitWorldAdaptor { return; } - Optional optionalCompoundTag = slimeWorld.getExtraData().getAsCompoundTag("customcrops"); - CompoundMap ccDataMap; - if (optionalCompoundTag.isEmpty()) { - ccDataMap = new CompoundMap(); - slimeWorld.getExtraData().getValue().put(new CompoundTag("customcrops", ccDataMap)); - } else { - ccDataMap = optionalCompoundTag.get().getValue(); - } - + CompoundMap ccDataMap = createOrGetDataMap(slimeWorld); String json = Optional.ofNullable(ccDataMap.get("world-info")).map(tag -> tag.getAsStringTag().get().getValue()).orElse(null); WorldInfoData data = (json == null || json.equals("null")) ? WorldInfoData.empty() : gson.fromJson(json, WorldInfoData.class); customCropsWorld.setInfoData(data); @@ -167,13 +163,8 @@ public class SlimeWorldAdaptor extends BukkitWorldAdaptor { return; } - Optional optionalCompoundTag = slimeWorld.getExtraData().getAsCompoundTag("customcrops"); - if (optionalCompoundTag.isEmpty()) { - LogUtils.warn("Failed to load data for " + chunkPos + " in world " + customCropsWorld.getWorldName() + " because slime world format is incorrect."); - return; - } - - Tag chunkTag = optionalCompoundTag.get().getValue().get(chunkPos.getAsString()); + CompoundMap ccDataMap = createOrGetDataMap(slimeWorld); + Tag chunkTag = ccDataMap.get(chunkPos.getAsString()); if (chunkTag == null) { return; } @@ -191,31 +182,27 @@ public class SlimeWorldAdaptor extends BukkitWorldAdaptor { @Override public void saveChunkToCachedRegion(CustomCropsChunk customCropsChunk) { CustomCropsWorld customCropsWorld = customCropsChunk.getCustomCropsWorld(); - SlimeWorld slimeWorld = getSlimeWorld(customCropsChunk.getCustomCropsWorld().getWorldName()); + SlimeWorld slimeWorld = getSlimeWorld(customCropsWorld.getWorldName()); if (slimeWorld == null) { super.saveChunkToCachedRegion(customCropsChunk); return; } - Optional optionalCompoundTag = slimeWorld.getExtraData().getAsCompoundTag("customcrops"); - if (optionalCompoundTag.isEmpty()) { - LogUtils.warn("Failed to save data for " + customCropsChunk.getChunkPos() + " in world " + customCropsWorld.getWorldName() + " because slime world format is incorrect."); - return; - } + CompoundMap ccDataMap = createOrGetDataMap(slimeWorld); SerializableChunk serializableChunk = toSerializableChunk((CChunk) customCropsChunk); if (Bukkit.isPrimaryThread()) { if (serializableChunk.canPrune()) { - optionalCompoundTag.get().getValue().remove(customCropsChunk.getChunkPos().getAsString()); + ccDataMap.remove(customCropsChunk.getChunkPos().getAsString()); } else { - optionalCompoundTag.get().getValue().put(chunkToTag(serializableChunk)); + ccDataMap.put(chunkToTag(serializableChunk)); } } else { CustomCropsPlugin.get().getScheduler().runTaskSync(() -> { if (serializableChunk.canPrune()) { - optionalCompoundTag.get().getValue().remove(customCropsChunk.getChunkPos().getAsString()); + ccDataMap.remove(customCropsChunk.getChunkPos().getAsString()); } else { - optionalCompoundTag.get().getValue().put(chunkToTag(serializableChunk)); + ccDataMap.put(chunkToTag(serializableChunk)); } }, null); } diff --git a/plugin/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml index a621d75..d16b5ca 100644 --- a/plugin/src/main/resources/plugin.yml +++ b/plugin/src/main/resources/plugin.yml @@ -18,6 +18,7 @@ softdepend: - RealisticSeasons - AdvancedSeasons - SlimeWorldManager + - SlimeWorldPlugin - HuskClaims - HuskTowns - Residence