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:
XiaoMoMi
2024-06-21 01:34:20 +08:00
parent 7e7ce62138
commit 701eb7bb97
6 changed files with 49 additions and 12 deletions

View File

@@ -126,7 +126,7 @@ public interface Pot extends KeyItem {
String getBlockState(boolean water, FertilizerType type); String getBlockState(boolean water, FertilizerType type);
/** /**
* Is the pot a vanilla blocks * Is the pot a vanilla block
*/ */
boolean isVanillaBlock(); boolean isVanillaBlock();

View File

@@ -8,7 +8,7 @@ plugins {
allprojects { allprojects {
project.group = "net.momirealms" project.group = "net.momirealms"
project.version = "3.5.1" project.version = "3.5.2"
apply<JavaPlugin>() apply<JavaPlugin>()
apply(plugin = "java") apply(plugin = "java")

View File

@@ -52,16 +52,16 @@ dependencies {
implementation(project(":oraxen-j21")) implementation(project(":oraxen-j21"))
implementation(project(":legacy-api")) implementation(project(":legacy-api"))
implementation(files("libs/Sparrow-Heart-0.17.jar"))
implementation("net.kyori:adventure-api:4.17.0") implementation("net.kyori:adventure-api:4.17.0")
implementation("net.kyori:adventure-platform-bukkit:4.3.3") implementation("net.kyori:adventure-platform-bukkit:4.3.3")
implementation("net.kyori:adventure-text-minimessage:4.17.0") implementation("net.kyori:adventure-text-minimessage:4.17.0")
implementation("net.kyori:adventure-text-serializer-legacy:4.17.0") implementation("net.kyori:adventure-text-serializer-legacy:4.17.0")
implementation("com.github.Xiao-MoMi:AntiGriefLib:0.11") implementation("com.github.Xiao-MoMi:AntiGriefLib:0.11")
implementation("com.github.Xiao-MoMi:Sparrow-Heart:0.16") // implementation("com.github.Xiao-MoMi:Sparrow-Heart:0.16")
implementation("com.flowpowered:flow-nbt:2.0.2") implementation("com.flowpowered:flow-nbt:2.0.2")
implementation("com.saicone.rtag:rtag:1.5.4") implementation("com.saicone.rtag:rtag:1.5.4")
implementation("com.saicone.rtag:rtag-item:1.5.4") implementation("com.saicone.rtag:rtag-item:1.5.4")
compileOnly("de.tr7zw:item-nbt-api-plugin:2.13.0")
implementation("com.github.luben:zstd-jni:1.5.6-2") implementation("com.github.luben:zstd-jni:1.5.6-2")
} }

Binary file not shown.

View File

@@ -2656,8 +2656,13 @@ public class ItemManagerImpl implements ItemManager {
@Override @Override
public void updatePotState(Location location, Pot pot, boolean hasWater, Fertilizer fertilizer) { public void updatePotState(Location location, Pot pot, boolean hasWater, Fertilizer fertilizer) {
Block block = location.getBlock();
Pot currentPot = getPotByBlock(block);
if (currentPot != pot) {
plugin.getWorldManager().removePotAt(SimpleLocation.of(location));
return;
}
if (pot.isVanillaBlock()) { if (pot.isVanillaBlock()) {
Block block = location.getBlock();
if (block.getBlockData() instanceof Farmland farmland) { if (block.getBlockData() instanceof Farmland farmland) {
farmland.setMoisture(hasWater ? 7 : 0); farmland.setMoisture(hasWater ? 7 : 0);
block.setBlockData(farmland); block.setBlockData(farmland);

View File

@@ -217,23 +217,55 @@ public class MemoryPot extends AbstractCustomCropsBlock implements WorldPot {
} }
int water = getWater(); int water = getWater();
if (water > 0) {
if (--water <= 0) { SimpleLocation location = getLocation();
loseWater = true; Location bukkitLocation = location.getBukkitLocation();
if (bukkitLocation == null) return;
World world = bukkitLocation.getWorld();
outer: {
if (water > 0) {
if (pot.isRainDropAccepted()) {
if (world.hasStorm() || (!world.isClearWeather() && !world.isThundering())) {
double temperature = world.getTemperature(location.getX(), location.getY(), location.getZ());
if (temperature > 0.15 && temperature < 0.85) {
Block highest = world.getHighestBlockAt(location.getX(), location.getZ());
if (highest.getLocation().getY() == location.getY()) {
break outer;
}
}
}
}
if (pot.isNearbyWaterAccepted()) {
for (int i = -4; i <= 4; i++) {
for (int j = -4; j <= 4; j++) {
for (int k : new int[]{0, 1}) {
Block block = bukkitLocation.clone().add(i,k,j).getBlock();
if (block.getType() == Material.WATER || (block.getBlockData() instanceof Waterlogged waterlogged && waterlogged.isWaterlogged())) {
break outer;
}
}
}
}
}
if (--water <= 0) {
loseWater = true;
}
setWater(water);
} }
setWater(water);
} }
if (loseFertilizer || loseWater) { if (loseFertilizer || loseWater) {
Location location = getLocation().getBukkitLocation();
CustomCropsPlugin.get().getScheduler().runTaskSync(() -> CustomCropsPlugin.get().getScheduler().runTaskSync(() ->
CustomCropsPlugin.get().getItemManager() CustomCropsPlugin.get().getItemManager()
.updatePotState( .updatePotState(
location, bukkitLocation,
pot, pot,
getWater() > 0, getWater() > 0,
getFertilizer() getFertilizer()
), location ), bukkitLocation
); );
} }
} }