9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-22 16:39:36 +00:00
This commit is contained in:
Xiao-MoMi
2022-11-22 16:41:52 +08:00
parent bc97fa5aac
commit 5a734476c4
3 changed files with 9 additions and 6 deletions

View File

@@ -4,7 +4,7 @@ plugins {
} }
group = 'net.momirealms' group = 'net.momirealms'
version = '2.0.11-hotfix' version = '2.0.12'
repositories { repositories {
mavenCentral() mavenCentral()

View File

@@ -78,6 +78,7 @@ public class ItemsAdderFrameHandler extends ItemsAdderHandler {
if (!AntiGrief.testBreak(player, entity.getLocation())) return; if (!AntiGrief.testBreak(player, entity.getLocation())) return;
if (!canProceedAction(player, entity.getLocation())) return; if (!canProceedAction(player, entity.getLocation())) return;
CustomFurniture.remove(entity, false); CustomFurniture.remove(entity, false);
if (entity.isValid()) entity.remove();
this.onInteractRipeCrop(location, namespacedID, player); this.onInteractRipeCrop(location, namespacedID, player);
return; return;
} }
@@ -229,6 +230,7 @@ public class ItemsAdderFrameHandler extends ItemsAdderHandler {
String seedID = customFurniture.getNamespacedID(); String seedID = customFurniture.getNamespacedID();
if (seedID.contains("_stage_")) { if (seedID.contains("_stage_")) {
CustomFurniture.remove(itemFrame, false); CustomFurniture.remove(itemFrame, false);
if (itemFrame.isValid()) itemFrame.remove();
if (seedID.equals(BasicItemConfig.deadCrop)) return; if (seedID.equals(BasicItemConfig.deadCrop)) return;
if (hasNextStage(seedID)) { if (hasNextStage(seedID)) {
super.onBreakUnripeCrop(location); super.onBreakUnripeCrop(location);

View File

@@ -21,6 +21,7 @@ import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.World;
import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.LocalPlayer;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.internal.platform.WorldGuardPlatform; import com.sk89q.worldguard.internal.platform.WorldGuardPlatform;
import com.sk89q.worldguard.protection.flags.Flags; import com.sk89q.worldguard.protection.flags.Flags;
@@ -37,10 +38,10 @@ public class WorldGuardHook implements AntiGrief {
public boolean canPlace(Location location, Player player) { public boolean canPlace(Location location, Player player) {
LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player); LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
World world = BukkitAdapter.adapt(location.getWorld()); World world = BukkitAdapter.adapt(location.getWorld());
WorldGuardPlatform platform = com.sk89q.worldguard.WorldGuard.getInstance().getPlatform(); WorldGuardPlatform platform = WorldGuard.getInstance().getPlatform();
if (hasRegion(world, BukkitAdapter.asBlockVector(location))){ if (hasRegion(world, BukkitAdapter.asBlockVector(location))){
RegionQuery query = platform.getRegionContainer().createQuery(); RegionQuery query = platform.getRegionContainer().createQuery();
return query.testBuild(BukkitAdapter.adapt(location), localPlayer, Flags.BUILD); return query.testState(BukkitAdapter.adapt(location), localPlayer, Flags.BUILD);
} }
else return true; else return true;
} }
@@ -49,16 +50,16 @@ public class WorldGuardHook implements AntiGrief {
public boolean canBreak(Location location, Player player) { public boolean canBreak(Location location, Player player) {
LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player); LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
World world = BukkitAdapter.adapt(location.getWorld()); World world = BukkitAdapter.adapt(location.getWorld());
WorldGuardPlatform platform = com.sk89q.worldguard.WorldGuard.getInstance().getPlatform(); WorldGuardPlatform platform = WorldGuard.getInstance().getPlatform();
if (hasRegion(world, BukkitAdapter.asBlockVector(location))){ if (hasRegion(world, BukkitAdapter.asBlockVector(location))){
RegionQuery query = platform.getRegionContainer().createQuery(); RegionQuery query = platform.getRegionContainer().createQuery();
return query.testBuild(BukkitAdapter.adapt(location), localPlayer, Flags.BLOCK_BREAK); return query.testState(BukkitAdapter.adapt(location), localPlayer, Flags.BLOCK_BREAK);
} }
else return true; else return true;
} }
private boolean hasRegion(World world, BlockVector3 vector){ private boolean hasRegion(World world, BlockVector3 vector){
RegionContainer container = com.sk89q.worldguard.WorldGuard.getInstance().getPlatform().getRegionContainer(); RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
RegionManager regionManager = container.get(world); RegionManager regionManager = container.get(world);
if (regionManager == null) return true; if (regionManager == null) return true;
return regionManager.getApplicableRegions(vector).size() > 0; return regionManager.getApplicableRegions(vector).size() > 0;