mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-19 15:09:25 +00:00
improve vanilla crop interactions
This commit is contained in:
@@ -22,7 +22,6 @@ import net.momirealms.customcrops.api.action.ActionManager;
|
|||||||
import net.momirealms.customcrops.api.context.Context;
|
import net.momirealms.customcrops.api.context.Context;
|
||||||
import net.momirealms.customcrops.api.context.ContextKeys;
|
import net.momirealms.customcrops.api.context.ContextKeys;
|
||||||
import net.momirealms.customcrops.api.core.block.CropBlock;
|
import net.momirealms.customcrops.api.core.block.CropBlock;
|
||||||
import net.momirealms.customcrops.api.core.block.PotBlock;
|
|
||||||
import net.momirealms.customcrops.api.core.mechanic.crop.BoneMeal;
|
import net.momirealms.customcrops.api.core.mechanic.crop.BoneMeal;
|
||||||
import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig;
|
import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig;
|
||||||
import net.momirealms.customcrops.api.core.mechanic.crop.CropStageConfig;
|
import net.momirealms.customcrops.api.core.mechanic.crop.CropStageConfig;
|
||||||
@@ -43,6 +42,7 @@ import org.bukkit.entity.Entity;
|
|||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Item;
|
import org.bukkit.entity.Item;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@@ -109,9 +109,14 @@ public abstract class AbstractCustomEventListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
assert block != null;
|
assert block != null;
|
||||||
if (blocks.contains(block.getType())) {
|
Material type = block.getType();
|
||||||
|
if (blocks.contains(type)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ItemStack itemStack = event.getItem();
|
||||||
|
if (itemStack != null && itemStack.getType() == Material.BONE_MEAL && ConfigManager.overriddenCrops().contains(type)) {
|
||||||
|
event.setUseItemInHand(Event.Result.DENY);
|
||||||
|
}
|
||||||
this.itemManager.handlePlayerInteractBlock(
|
this.itemManager.handlePlayerInteractBlock(
|
||||||
event.getPlayer(),
|
event.getPlayer(),
|
||||||
block,
|
block,
|
||||||
@@ -145,6 +150,10 @@ public abstract class AbstractCustomEventListener implements Listener {
|
|||||||
if (blocks.contains(block.getType())) {
|
if (blocks.contains(block.getType())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (ConfigManager.overriddenCrops().contains(block.getType())) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.itemManager.handlePlayerPlace(
|
this.itemManager.handlePlayerPlace(
|
||||||
event.getPlayer(),
|
event.getPlayer(),
|
||||||
block.getLocation(),
|
block.getLocation(),
|
||||||
@@ -161,6 +170,9 @@ public abstract class AbstractCustomEventListener implements Listener {
|
|||||||
if (blocks.contains(block.getType())) {
|
if (blocks.contains(block.getType())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (ConfigManager.overriddenCrops().contains(block.getType())) {
|
||||||
|
event.setDropItems(false);
|
||||||
|
}
|
||||||
this.itemManager.handlePlayerBreak(
|
this.itemManager.handlePlayerBreak(
|
||||||
event.getPlayer(),
|
event.getPlayer(),
|
||||||
block.getLocation(),
|
block.getLocation(),
|
||||||
@@ -318,6 +330,13 @@ public abstract class AbstractCustomEventListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onBlockPhysics(BlockPhysicsEvent event) {
|
||||||
|
if (ConfigManager.overriddenCrops().contains(event.getBlock().getType())) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler (ignoreCancelled = true, priority = EventPriority.HIGH)
|
@EventHandler (ignoreCancelled = true, priority = EventPriority.HIGH)
|
||||||
public void onDispenser(BlockDispenseEvent event) {
|
public void onDispenser(BlockDispenseEvent event) {
|
||||||
Block block = event.getBlock();
|
Block block = event.getBlock();
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import net.momirealms.customcrops.api.util.PluginUtils;
|
|||||||
import net.momirealms.customcrops.common.config.ConfigLoader;
|
import net.momirealms.customcrops.common.config.ConfigLoader;
|
||||||
import net.momirealms.customcrops.common.plugin.feature.Reloadable;
|
import net.momirealms.customcrops.common.plugin.feature.Reloadable;
|
||||||
import net.momirealms.customcrops.common.util.Pair;
|
import net.momirealms.customcrops.common.util.Pair;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@@ -70,6 +71,8 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable {
|
|||||||
protected boolean disableMoistureMechanic;
|
protected boolean disableMoistureMechanic;
|
||||||
protected HashMap<String, Double> offsets = new HashMap<>();
|
protected HashMap<String, Double> offsets = new HashMap<>();
|
||||||
|
|
||||||
|
protected HashSet<Material> overriddenCrops = new HashSet<>();
|
||||||
|
|
||||||
public ConfigManager(BukkitCustomCropsPlugin plugin) {
|
public ConfigManager(BukkitCustomCropsPlugin plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
instance = this;
|
instance = this;
|
||||||
@@ -163,6 +166,10 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable {
|
|||||||
return instance.disableMoistureMechanic;
|
return instance.disableMoistureMechanic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Set<Material> overriddenCrops() {
|
||||||
|
return instance.overriddenCrops;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public YamlDocument loadConfig(String filePath) {
|
public YamlDocument loadConfig(String filePath) {
|
||||||
return loadConfig(filePath, '.');
|
return loadConfig(filePath, '.');
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
package net.momirealms.customcrops.api.core.block;
|
package net.momirealms.customcrops.api.core.block;
|
||||||
|
|
||||||
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
|
||||||
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
||||||
import net.momirealms.customcrops.api.core.BuiltInBlockMechanics;
|
import net.momirealms.customcrops.api.core.BuiltInBlockMechanics;
|
||||||
import net.momirealms.customcrops.api.core.ConfigManager;
|
import net.momirealms.customcrops.api.core.ConfigManager;
|
||||||
@@ -30,6 +29,7 @@ import net.momirealms.customcrops.api.core.wrapper.WrappedPlaceEvent;
|
|||||||
import net.momirealms.customcrops.api.event.GreenhouseGlassBreakEvent;
|
import net.momirealms.customcrops.api.event.GreenhouseGlassBreakEvent;
|
||||||
import net.momirealms.customcrops.api.event.GreenhouseGlassInteractEvent;
|
import net.momirealms.customcrops.api.event.GreenhouseGlassInteractEvent;
|
||||||
import net.momirealms.customcrops.api.event.GreenhouseGlassPlaceEvent;
|
import net.momirealms.customcrops.api.event.GreenhouseGlassPlaceEvent;
|
||||||
|
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
||||||
import net.momirealms.customcrops.api.util.EventUtils;
|
import net.momirealms.customcrops.api.util.EventUtils;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|||||||
@@ -18,13 +18,14 @@
|
|||||||
package net.momirealms.customcrops.api.core.block;
|
package net.momirealms.customcrops.api.core.block;
|
||||||
|
|
||||||
import com.flowpowered.nbt.*;
|
import com.flowpowered.nbt.*;
|
||||||
import com.flowpowered.nbt.Tag;
|
|
||||||
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
|
||||||
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
||||||
import net.momirealms.customcrops.api.action.ActionManager;
|
import net.momirealms.customcrops.api.action.ActionManager;
|
||||||
import net.momirealms.customcrops.api.context.Context;
|
import net.momirealms.customcrops.api.context.Context;
|
||||||
import net.momirealms.customcrops.api.context.ContextKeys;
|
import net.momirealms.customcrops.api.context.ContextKeys;
|
||||||
import net.momirealms.customcrops.api.core.*;
|
import net.momirealms.customcrops.api.core.BuiltInBlockMechanics;
|
||||||
|
import net.momirealms.customcrops.api.core.ConfigManager;
|
||||||
|
import net.momirealms.customcrops.api.core.ExistenceForm;
|
||||||
|
import net.momirealms.customcrops.api.core.Registries;
|
||||||
import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig;
|
import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig;
|
||||||
import net.momirealms.customcrops.api.core.mechanic.crop.CropStageConfig;
|
import net.momirealms.customcrops.api.core.mechanic.crop.CropStageConfig;
|
||||||
import net.momirealms.customcrops.api.core.mechanic.fertilizer.Fertilizer;
|
import net.momirealms.customcrops.api.core.mechanic.fertilizer.Fertilizer;
|
||||||
@@ -37,17 +38,18 @@ import net.momirealms.customcrops.api.core.wrapper.WrappedBreakEvent;
|
|||||||
import net.momirealms.customcrops.api.core.wrapper.WrappedInteractEvent;
|
import net.momirealms.customcrops.api.core.wrapper.WrappedInteractEvent;
|
||||||
import net.momirealms.customcrops.api.core.wrapper.WrappedPlaceEvent;
|
import net.momirealms.customcrops.api.core.wrapper.WrappedPlaceEvent;
|
||||||
import net.momirealms.customcrops.api.event.*;
|
import net.momirealms.customcrops.api.event.*;
|
||||||
|
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
||||||
import net.momirealms.customcrops.api.misc.water.WateringMethod;
|
import net.momirealms.customcrops.api.misc.water.WateringMethod;
|
||||||
import net.momirealms.customcrops.api.requirement.RequirementManager;
|
import net.momirealms.customcrops.api.requirement.RequirementManager;
|
||||||
import net.momirealms.customcrops.api.util.EventUtils;
|
import net.momirealms.customcrops.api.util.EventUtils;
|
||||||
import net.momirealms.customcrops.api.util.LocationUtils;
|
import net.momirealms.customcrops.api.util.LocationUtils;
|
||||||
import net.momirealms.customcrops.api.util.PlayerUtils;
|
import net.momirealms.customcrops.api.util.PlayerUtils;
|
||||||
import net.momirealms.customcrops.api.util.StringUtils;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.*;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.block.data.Waterlogged;
|
import org.bukkit.block.data.Waterlogged;
|
||||||
import org.bukkit.block.data.type.Farmland;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
package net.momirealms.customcrops.api.core.block;
|
package net.momirealms.customcrops.api.core.block;
|
||||||
|
|
||||||
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
|
||||||
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
||||||
import net.momirealms.customcrops.api.core.BuiltInBlockMechanics;
|
import net.momirealms.customcrops.api.core.BuiltInBlockMechanics;
|
||||||
import net.momirealms.customcrops.api.core.ConfigManager;
|
import net.momirealms.customcrops.api.core.ConfigManager;
|
||||||
@@ -30,6 +29,7 @@ import net.momirealms.customcrops.api.core.wrapper.WrappedPlaceEvent;
|
|||||||
import net.momirealms.customcrops.api.event.ScarecrowBreakEvent;
|
import net.momirealms.customcrops.api.event.ScarecrowBreakEvent;
|
||||||
import net.momirealms.customcrops.api.event.ScarecrowInteractEvent;
|
import net.momirealms.customcrops.api.event.ScarecrowInteractEvent;
|
||||||
import net.momirealms.customcrops.api.event.ScarecrowPlaceEvent;
|
import net.momirealms.customcrops.api.event.ScarecrowPlaceEvent;
|
||||||
|
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
||||||
import net.momirealms.customcrops.api.util.EventUtils;
|
import net.momirealms.customcrops.api.util.EventUtils;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package net.momirealms.customcrops.api.core.block;
|
|||||||
|
|
||||||
import com.flowpowered.nbt.IntTag;
|
import com.flowpowered.nbt.IntTag;
|
||||||
import com.flowpowered.nbt.Tag;
|
import com.flowpowered.nbt.Tag;
|
||||||
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
|
||||||
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
import net.momirealms.customcrops.api.BukkitCustomCropsPlugin;
|
||||||
import net.momirealms.customcrops.api.action.ActionManager;
|
import net.momirealms.customcrops.api.action.ActionManager;
|
||||||
import net.momirealms.customcrops.api.context.Context;
|
import net.momirealms.customcrops.api.context.Context;
|
||||||
@@ -37,6 +36,7 @@ import net.momirealms.customcrops.api.event.SprinklerBreakEvent;
|
|||||||
import net.momirealms.customcrops.api.event.SprinklerFillEvent;
|
import net.momirealms.customcrops.api.event.SprinklerFillEvent;
|
||||||
import net.momirealms.customcrops.api.event.SprinklerInteractEvent;
|
import net.momirealms.customcrops.api.event.SprinklerInteractEvent;
|
||||||
import net.momirealms.customcrops.api.event.SprinklerPlaceEvent;
|
import net.momirealms.customcrops.api.event.SprinklerPlaceEvent;
|
||||||
|
import net.momirealms.customcrops.api.misc.NamedTextColor;
|
||||||
import net.momirealms.customcrops.api.misc.water.WateringMethod;
|
import net.momirealms.customcrops.api.misc.water.WateringMethod;
|
||||||
import net.momirealms.customcrops.api.requirement.RequirementManager;
|
import net.momirealms.customcrops.api.requirement.RequirementManager;
|
||||||
import net.momirealms.customcrops.api.util.EventUtils;
|
import net.momirealms.customcrops.api.util.EventUtils;
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
package net.momirealms.customcrops.api.core.mechanic.pot;
|
package net.momirealms.customcrops.api.core.mechanic.pot;
|
||||||
|
|
||||||
import net.momirealms.customcrops.api.action.Action;
|
import net.momirealms.customcrops.api.action.Action;
|
||||||
import net.momirealms.customcrops.api.core.ExistenceForm;
|
|
||||||
import net.momirealms.customcrops.api.core.mechanic.fertilizer.FertilizerType;
|
import net.momirealms.customcrops.api.core.mechanic.fertilizer.FertilizerType;
|
||||||
import net.momirealms.customcrops.api.core.world.CustomCropsBlockState;
|
import net.momirealms.customcrops.api.core.world.CustomCropsBlockState;
|
||||||
import net.momirealms.customcrops.api.misc.water.WaterBar;
|
import net.momirealms.customcrops.api.misc.water.WaterBar;
|
||||||
|
|||||||
@@ -38,9 +38,11 @@ import net.momirealms.customcrops.api.core.mechanic.pot.PotConfig;
|
|||||||
import net.momirealms.customcrops.api.core.mechanic.sprinkler.SprinklerConfig;
|
import net.momirealms.customcrops.api.core.mechanic.sprinkler.SprinklerConfig;
|
||||||
import net.momirealms.customcrops.api.core.mechanic.wateringcan.WateringCanConfig;
|
import net.momirealms.customcrops.api.core.mechanic.wateringcan.WateringCanConfig;
|
||||||
import net.momirealms.customcrops.common.helper.AdventureHelper;
|
import net.momirealms.customcrops.common.helper.AdventureHelper;
|
||||||
|
import net.momirealms.customcrops.common.helper.VersionHelper;
|
||||||
import net.momirealms.customcrops.common.locale.TranslationManager;
|
import net.momirealms.customcrops.common.locale.TranslationManager;
|
||||||
import net.momirealms.customcrops.common.plugin.CustomCropsProperties;
|
import net.momirealms.customcrops.common.plugin.CustomCropsProperties;
|
||||||
import net.momirealms.customcrops.common.util.ListUtils;
|
import net.momirealms.customcrops.common.util.ListUtils;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -50,14 +52,23 @@ import java.util.*;
|
|||||||
|
|
||||||
public class BukkitConfigManager extends ConfigManager {
|
public class BukkitConfigManager extends ConfigManager {
|
||||||
|
|
||||||
|
private static final Set<Material> VANILLA_CROPS = new HashSet<>(
|
||||||
|
List.of(Material.WHEAT, Material.CARROTS, Material.POTATOES, Material.BEETROOTS, Material.SWEET_BERRY_BUSH,
|
||||||
|
Material.MELON_STEM, Material.PUMPKIN_STEM)
|
||||||
|
);
|
||||||
private static YamlDocument MAIN_CONFIG;
|
private static YamlDocument MAIN_CONFIG;
|
||||||
|
|
||||||
public static YamlDocument getMainConfig() {
|
public static YamlDocument getMainConfig() {
|
||||||
return MAIN_CONFIG;
|
return MAIN_CONFIG;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BukkitConfigManager(BukkitCustomCropsPlugin plugin) {
|
public BukkitConfigManager(BukkitCustomCropsPlugin plugin) {
|
||||||
super(plugin);
|
super(plugin);
|
||||||
|
if (VersionHelper.isVersionNewerThan1_19_4()) {
|
||||||
|
VANILLA_CROPS.add(Material.TORCHFLOWER_CROP);
|
||||||
|
}
|
||||||
|
if (VersionHelper.isVersionNewerThan1_20()) {
|
||||||
|
VANILLA_CROPS.add(Material.PITCHER_CROP);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -155,6 +166,27 @@ public class BukkitConfigManager extends ConfigManager {
|
|||||||
for (String id : greenhouse) {
|
for (String id : greenhouse) {
|
||||||
Registries.BLOCKS.register(id, BuiltInBlockMechanics.GREENHOUSE.mechanic());
|
Registries.BLOCKS.register(id, BuiltInBlockMechanics.GREENHOUSE.mechanic());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
overriddenCrops.clear();
|
||||||
|
overriddenCrops.addAll(config.getStringList("mechanics.override-vanilla-crops")
|
||||||
|
.stream()
|
||||||
|
.map(it -> {
|
||||||
|
try {
|
||||||
|
return Material.valueOf(it.toUpperCase(Locale.ENGLISH));
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
plugin.getPluginLogger().warn("No enum constant exists", e);
|
||||||
|
return Material.AIR;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.filter(it -> {
|
||||||
|
if (it == Material.AIR) return false;
|
||||||
|
boolean allow = VANILLA_CROPS.contains(it);
|
||||||
|
if (!allow) {
|
||||||
|
plugin.getPluginLogger().warn(it.name() + " is not a supported vanilla crop type");
|
||||||
|
}
|
||||||
|
return allow;
|
||||||
|
})
|
||||||
|
.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -193,8 +225,12 @@ public class BukkitConfigManager extends ConfigManager {
|
|||||||
boolean save = false;
|
boolean save = false;
|
||||||
for (Map.Entry<String, Object> entry : document.getStringRouteMappedValues(false).entrySet()) {
|
for (Map.Entry<String, Object> entry : document.getStringRouteMappedValues(false).entrySet()) {
|
||||||
if (entry.getValue() instanceof Section section) {
|
if (entry.getValue() instanceof Section section) {
|
||||||
if (type.parse(this, entry.getKey(), section)) {
|
try {
|
||||||
save = true;
|
if (type.parse(this, entry.getKey(), section)) {
|
||||||
|
save = true;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
plugin.getPluginLogger().warn("Error occurs during parsing configs", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ import net.momirealms.customcrops.api.integration.ItemProvider;
|
|||||||
import net.momirealms.customcrops.api.util.EventUtils;
|
import net.momirealms.customcrops.api.util.EventUtils;
|
||||||
import net.momirealms.customcrops.api.util.LocationUtils;
|
import net.momirealms.customcrops.api.util.LocationUtils;
|
||||||
import net.momirealms.customcrops.api.util.PluginUtils;
|
import net.momirealms.customcrops.api.util.PluginUtils;
|
||||||
import net.momirealms.customcrops.api.util.StringUtils;
|
|
||||||
import net.momirealms.customcrops.common.item.Item;
|
import net.momirealms.customcrops.common.item.Item;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@@ -250,7 +249,7 @@ public class BukkitItemManager extends AbstractItemManager {
|
|||||||
public String blockID(@NotNull Block block) {
|
public String blockID(@NotNull Block block) {
|
||||||
String id = this.provider.blockID(block);
|
String id = this.provider.blockID(block);
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
id = block.getType().toString();
|
id = block.getBlockData().getAsString();
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,6 +125,8 @@ mechanics:
|
|||||||
# Set hologram offset correction for other blocks
|
# Set hologram offset correction for other blocks
|
||||||
hologram-offset-correction:
|
hologram-offset-correction:
|
||||||
"{0}crop_stage_death": 0
|
"{0}crop_stage_death": 0
|
||||||
|
# Set the crop types that would be overridden
|
||||||
|
override-vanilla-crops: []
|
||||||
other-settings:
|
other-settings:
|
||||||
# It's recommended to use MiniMessage format. If you insist on using legacy color code "&", enable the support below.
|
# It's recommended to use MiniMessage format. If you insist on using legacy color code "&", enable the support below.
|
||||||
# Disable this would improve performance
|
# Disable this would improve performance
|
||||||
|
|||||||
Reference in New Issue
Block a user