9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-25 01:49:18 +00:00

Improve vanilla crop check

This commit is contained in:
XiaoMoMi
2025-02-24 17:40:23 +08:00
parent c1feb79e86
commit 08e3ba6f1d
6 changed files with 17 additions and 9 deletions

View File

@@ -34,6 +34,7 @@ dependencies {
compileOnly("com.saicone.rtag:rtag:${rootProject.properties["rtag_version"]}")
compileOnly("net.objecthunter:exp4j:${rootProject.properties["exp4j_version"]}")
compileOnly("com.google.guava:guava:${rootProject.properties["guava_version"]}")
compileOnly("io.netty:netty-all:${rootProject.properties["netty_version"]}.Final")
}
java {

View File

@@ -56,7 +56,6 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable {
VANILLA_CROPS = Collections.unmodifiableSet(set);
}
private static ConfigManager instance;
protected final BukkitCustomCropsPlugin plugin;

View File

@@ -46,6 +46,7 @@ import net.momirealms.customcrops.api.util.LocationUtils;
import net.momirealms.customcrops.common.helper.AdventureHelper;
import net.momirealms.customcrops.common.item.Item;
import net.momirealms.customcrops.common.util.Pair;
import net.momirealms.sparrow.heart.SparrowHeart;
import org.bukkit.FluidCollisionMode;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -58,11 +59,16 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.util.RayTraceResult;
import org.bukkit.util.Vector;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.*;
public class WateringCanItem extends AbstractCustomCropsItem {
private static final Set<String> VANILLA_CROP_STATES = new HashSet<>();
static {
for (Material material : ConfigManager.VANILLA_CROPS) {
VANILLA_CROP_STATES.addAll(SparrowHeart.getInstance().getAllBlockStates(material));
}
}
public WateringCanItem() {
super(BuiltInItemMechanics.WATERING_CAN.key());
@@ -278,7 +284,7 @@ public class WateringCanItem extends AbstractCustomCropsItem {
// if the clicked block is a crop, correct the target block
List<CropConfig> cropConfigs = Registries.STAGE_TO_CROP_UNSAFE.get(targetBlockID);
if (cropConfigs != null || Registries.ITEM_TO_DEAD_CROP.containsKey(targetBlockID)) {
if (cropConfigs != null || Registries.ITEM_TO_DEAD_CROP.containsKey(targetBlockID) || VANILLA_CROP_STATES.contains(targetBlockID)) {
// is a crop
targetLocation = targetLocation.subtract(0,1,0);
targetBlockID = BukkitCustomCropsPlugin.getInstance().getItemManager().blockID(targetLocation);