diff --git a/src/main/java/net/momirealms/customcrops/ConfigReader.java b/src/main/java/net/momirealms/customcrops/ConfigReader.java index 81d9cdd..8dba8d5 100644 --- a/src/main/java/net/momirealms/customcrops/ConfigReader.java +++ b/src/main/java/net/momirealms/customcrops/ConfigReader.java @@ -196,6 +196,14 @@ public class ConfigReader { AdventureManager.consoleMessage("[CustomCrops] 已启用 Towny 保护!"); } } + if(config.getBoolean("config.integration.Lands",false)){ + if(Bukkit.getPluginManager().getPlugin("Lands") == null){ + CustomCrops.instance.getLogger().warning("未检测到插件 Lands!"); + }else { + integration.add(new Lands()); + AdventureManager.consoleMessage("[CustomCrops] 已启用 Lands 保护!"); + } + } } } diff --git a/src/main/java/net/momirealms/customcrops/CustomCrops.java b/src/main/java/net/momirealms/customcrops/CustomCrops.java index 7ec67ca..69fc978 100644 --- a/src/main/java/net/momirealms/customcrops/CustomCrops.java +++ b/src/main/java/net/momirealms/customcrops/CustomCrops.java @@ -1,6 +1,5 @@ package net.momirealms.customcrops; -import de.tr7zw.changeme.nbtapi.NBTItem; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.momirealms.customcrops.commands.Executor; import net.momirealms.customcrops.commands.Completer; @@ -16,8 +15,6 @@ import net.momirealms.customcrops.utils.BackUp; import net.momirealms.customcrops.utils.HoloUtil; import net.momirealms.customcrops.utils.Placeholders; import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; import java.util.Objects; diff --git a/src/main/java/net/momirealms/customcrops/integrations/GriefDefender.java b/src/main/java/net/momirealms/customcrops/integrations/GriefDefender.java index b24eb7e..6c74c03 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/GriefDefender.java +++ b/src/main/java/net/momirealms/customcrops/integrations/GriefDefender.java @@ -3,7 +3,7 @@ package net.momirealms.customcrops.integrations; import org.bukkit.Location; import org.bukkit.entity.Player; -public record GriefDefender() implements Integration { +public class GriefDefender implements Integration { @Override public boolean canBreak(Location location, Player player) { diff --git a/src/main/java/net/momirealms/customcrops/integrations/KingdomsX.java b/src/main/java/net/momirealms/customcrops/integrations/KingdomsX.java index a7f6c5e..e017a26 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/KingdomsX.java +++ b/src/main/java/net/momirealms/customcrops/integrations/KingdomsX.java @@ -6,7 +6,7 @@ import org.kingdoms.constants.group.Kingdom; import org.kingdoms.constants.land.Land; import org.kingdoms.constants.player.KingdomPlayer; -public record KingdomsX() implements Integration { +public class KingdomsX implements Integration { @Override public boolean canBreak(Location location, Player player) { diff --git a/src/main/java/net/momirealms/customcrops/integrations/Lands.java b/src/main/java/net/momirealms/customcrops/integrations/Lands.java new file mode 100644 index 0000000..049e59c --- /dev/null +++ b/src/main/java/net/momirealms/customcrops/integrations/Lands.java @@ -0,0 +1,31 @@ +package net.momirealms.customcrops.integrations; + +import me.angeschossen.lands.api.flags.Flags; +import me.angeschossen.lands.api.integration.LandsIntegration; +import me.angeschossen.lands.api.land.Area; +import net.momirealms.customcrops.CustomCrops; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +public class Lands implements Integration{ + + @Override + public boolean canBreak(Location location, Player player) { + Area area = new LandsIntegration(CustomCrops.instance).getAreaByLoc(location); + if (area != null){ + return area.hasFlag(player, Flags.BLOCK_BREAK, false); + }else { + return true; + } + } + + @Override + public boolean canPlace(Location location, Player player) { + Area area = new LandsIntegration(CustomCrops.instance).getAreaByLoc(location); + if (area != null){ + return area.hasFlag(player, Flags.BLOCK_PLACE, false); + }else { + return true; + } + } +} diff --git a/src/main/java/net/momirealms/customcrops/integrations/PlotSquared.java b/src/main/java/net/momirealms/customcrops/integrations/PlotSquared.java index f0e0156..2e90f2b 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/PlotSquared.java +++ b/src/main/java/net/momirealms/customcrops/integrations/PlotSquared.java @@ -3,7 +3,7 @@ package net.momirealms.customcrops.integrations; import com.plotsquared.core.location.Location; import org.bukkit.entity.Player; -public record PlotSquared() implements Integration { +public class PlotSquared implements Integration { @Override public boolean canBreak(org.bukkit.Location location, Player player) { @@ -16,8 +16,6 @@ public record PlotSquared() implements Integration { } private boolean isAllowed(org.bukkit.Location location, Player player) { -// PlotAPI api = new PlotAPI(); -// PlotPlayer plotPlayer = com.plotsquared.core.PlotSquared.platform().playerManager().getPlayerIfExists(player.getUniqueId()); Location plotLoc = Location.at(location.getWorld().getName(), location.getBlockX(), location.getBlockY(), location.getBlockZ()); if (plotLoc.isPlotRoad()) return false; if (plotLoc.getPlotArea() != null){ diff --git a/src/main/java/net/momirealms/customcrops/integrations/Residence.java b/src/main/java/net/momirealms/customcrops/integrations/Residence.java index 3676cc4..3ee2ae6 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/Residence.java +++ b/src/main/java/net/momirealms/customcrops/integrations/Residence.java @@ -6,7 +6,7 @@ import com.bekvon.bukkit.residence.protection.ResidencePermissions; import org.bukkit.Location; import org.bukkit.entity.Player; -public record Residence() implements Integration { +public class Residence implements Integration { @Override public boolean canBreak(Location location, Player player) { diff --git a/src/main/java/net/momirealms/customcrops/integrations/WorldGuard.java b/src/main/java/net/momirealms/customcrops/integrations/WorldGuard.java index 2f245ff..f29ea08 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/WorldGuard.java +++ b/src/main/java/net/momirealms/customcrops/integrations/WorldGuard.java @@ -13,7 +13,7 @@ import com.sk89q.worldguard.protection.regions.RegionQuery; import org.bukkit.Location; import org.bukkit.entity.Player; -public record WorldGuard() implements Integration { +public class WorldGuard implements Integration { @Override public boolean canPlace(Location location, Player player) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index ac7ba2c..d2ab05c 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,18 +1,13 @@ config: #插件兼容 integration: - #收获flag为destroy 浇水种植flag为build Residence: false - #收获flag为BLOCK-BREAK 浇水种植flag为BUILD WorldGuard: false - #只有王国成员可以收获、浇水和种植 Kingdoms: false - #信任的玩家可以收获、浇水和种植 GriefDefender: false - #拥有plot add的玩家可以收获、浇水和种植 PlotSquared: false - #拥有Town权限的玩家可以收获、浇水和种植 Towny: false + Lands: false #生长时间点(tick) #洒水器将会在农作物全部完成生长后开始工作 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 3a7fca7..2bf9f90 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: CustomCrops -version: '1.5.4' +version: '1.5.5' main: net.momirealms.customcrops.CustomCrops api-version: 1.16 depend: @@ -13,6 +13,7 @@ softdepend: - GriefDefender - PlotSquared - Towny + - Lands authors: [ XiaoMoMi ] commands: customcrops: