mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-22 08:29:35 +00:00
1.5.0-FIX
This commit is contained in:
@@ -41,9 +41,9 @@ public class ConfigReader {
|
||||
Config.loadConfig();
|
||||
Message.loadMessage();
|
||||
Basic.loadBasic();
|
||||
Season.loadSeason();
|
||||
cropLoad();
|
||||
fertilizerLoad();
|
||||
Season.loadSeason();
|
||||
}
|
||||
|
||||
public static class Config{
|
||||
@@ -150,7 +150,7 @@ public class ConfigReader {
|
||||
CustomCrops.instance.getLogger().warning("未检测到插件 Residence!");
|
||||
}else {
|
||||
integration.add(new Residence());
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>检测到 <gold>Residence <color:#FFEBCD>已启用保护!");
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已启用 <gold>Residence <color:#FFEBCD>保护!");
|
||||
}
|
||||
}
|
||||
if(config.getBoolean("config.integration.Kingdoms",false)){
|
||||
@@ -158,7 +158,7 @@ public class ConfigReader {
|
||||
CustomCrops.instance.getLogger().warning("未检测到插件 Kingdoms!");
|
||||
}else {
|
||||
integration.add(new KingdomsX());
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>检测到 <gold>KingdomsX <color:#FFEBCD>已启用保护!");
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已启用 <gold>KingdomsX <color:#FFEBCD>保护!");
|
||||
}
|
||||
}
|
||||
if(config.getBoolean("config.integration.WorldGuard",false)){
|
||||
@@ -166,7 +166,7 @@ public class ConfigReader {
|
||||
CustomCrops.instance.getLogger().warning("未检测到插件 WorldGuard!");
|
||||
}else {
|
||||
integration.add(new WorldGuard());
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>检测到 <gold>WorldGuard <color:#FFEBCD>已启用保护!");
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已启用 <gold>WorldGuard <color:#FFEBCD>保护!");
|
||||
}
|
||||
}
|
||||
if(config.getBoolean("config.integration.GriefDefender",false)){
|
||||
@@ -174,7 +174,15 @@ public class ConfigReader {
|
||||
CustomCrops.instance.getLogger().warning("未检测到插件 GriefDefender!");
|
||||
}else {
|
||||
integration.add(new GriefDefender());
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>检测到 <gold>GriefDefender <color:#FFEBCD>已启用保护!");
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已启用 <gold>GriefDefender <color:#FFEBCD>保护!");
|
||||
}
|
||||
}
|
||||
if(config.getBoolean("config.integration.PlotSquared",false)){
|
||||
if(Bukkit.getPluginManager().getPlugin("PlotSquared") == null){
|
||||
CustomCrops.instance.getLogger().warning("未检测到插件 PlotSquared!");
|
||||
}else {
|
||||
integration.add(new PlotSquared());
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已启用 <gold>PlotSquared <color:#FFEBCD>保护!");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -220,6 +228,7 @@ public class ConfigReader {
|
||||
}
|
||||
});
|
||||
}
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已载入 <white>" + CANS.size() + " <color:#FFEBCD>个水壶!");
|
||||
|
||||
SPRINKLERS.clear();
|
||||
if (config.contains("sprinkler")){
|
||||
@@ -236,6 +245,7 @@ public class ConfigReader {
|
||||
}
|
||||
});
|
||||
}
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已载入 <white>" + SPRINKLERS.size()/2 + " <color:#FFEBCD>个洒水器!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,7 +268,10 @@ public class ConfigReader {
|
||||
}
|
||||
seasonChange = config.getBoolean("season.auto-season-change.enable",false);
|
||||
if (seasonChange) {
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>当前季节变换模式: <gold>自动");
|
||||
duration = config.getInt("season.auto-season-change.duration",28);
|
||||
}else {
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>当前季节变换模式: <gold>指令");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -297,6 +310,7 @@ public class ConfigReader {
|
||||
public static String sprinklerFull;
|
||||
public static String sprinklerEmpty;
|
||||
public static String sprinklerRight;
|
||||
public static String beforePlant;
|
||||
public static double cropOffset;
|
||||
public static double sprinklerOffset;
|
||||
|
||||
@@ -324,6 +338,7 @@ public class ConfigReader {
|
||||
setSeason = config.getString("messages.set-season");
|
||||
wrongArgs = config.getString("messages.wrong-args");
|
||||
forceSave = config.getString("messages.force-save");
|
||||
beforePlant = config.getString("messages.before-plant");
|
||||
|
||||
hasCropInfo = config.getBoolean("hologram.grow-info.enable");
|
||||
if (hasCropInfo){
|
||||
@@ -385,6 +400,7 @@ public class ConfigReader {
|
||||
}
|
||||
CROPS.put(key, cropInstance);
|
||||
});
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已载入 <white>" + CROPS.size() + " <color:#FFEBCD>种农作物!");
|
||||
}
|
||||
|
||||
public static void fertilizerLoad(){
|
||||
@@ -428,5 +444,6 @@ public class ConfigReader {
|
||||
}
|
||||
});
|
||||
}
|
||||
AdventureManager.consoleMessage("<gradient:#ff206c:#fdee55>[CustomCrops] </gradient><color:#FFEBCD>已载入 <white>" + FERTILIZERS.size() + " <color:#FFEBCD>种肥料!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,9 +137,19 @@ public class Executor implements CommandExecutor {
|
||||
}
|
||||
default -> {
|
||||
if (sender instanceof Player player){
|
||||
AdventureManager.playerMessage(player,"");
|
||||
AdventureManager.playerMessage(player,"<color:#F5DEB3>/customcrops reload 重载插件");
|
||||
AdventureManager.playerMessage(player,"<color:#F5DEB3>/customcrops setseason <world> <season> 设置某个世界的季节");
|
||||
AdventureManager.playerMessage(player,"<color:#F5DEB3>/customcrops backup 备份数据");
|
||||
AdventureManager.playerMessage(player,"<color:#F5DEB3>/customcrops forcegrow <world> 强制某个世界的农作物进行生长判定");
|
||||
AdventureManager.playerMessage(player,"<color:#F5DEB3>/customcrops forcewater <world> 强制某个世界的洒水器进行工作判定");
|
||||
AdventureManager.playerMessage(player,"<color:#F5DEB3>/customcrops forcesave <file> 强制更新缓存并保存");
|
||||
}else {
|
||||
AdventureManager.consoleMessage("");
|
||||
AdventureManager.consoleMessage("<color:#F5DEB3>/customcrops reload 重载插件");
|
||||
AdventureManager.consoleMessage("<color:#F5DEB3>/customcrops setseason <world> <season> 设置某个世界的季节");
|
||||
AdventureManager.consoleMessage("<color:#F5DEB3>/customcrops backup 备份数据");
|
||||
AdventureManager.consoleMessage("<color:#F5DEB3>/customcrops forcegrow <world> 强制某个世界的农作物进行生长判定");
|
||||
AdventureManager.consoleMessage("<color:#F5DEB3>/customcrops forcewater <world> 强制某个世界的洒水器进行工作判定");
|
||||
AdventureManager.consoleMessage("<color:#F5DEB3>/customcrops forcesave <file> 强制更新缓存并保存");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package net.momirealms.customcrops.integrations;
|
||||
|
||||
import com.plotsquared.core.location.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public record PlotSquared() implements Integration {
|
||||
@Override
|
||||
public boolean canBreak(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;
|
||||
return plotLoc.getPlotArea().getPlot(plotLoc).isAdded(player.getUniqueId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlace(org.bukkit.Location location, Player player) {
|
||||
Location plotLoc = Location.at(location.getWorld().getName(), location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
||||
if (plotLoc.isPlotRoad()) return false;
|
||||
return plotLoc.getPlotArea().getPlot(plotLoc).isAdded(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ public record Residence() implements Integration {
|
||||
ClaimedResidence res = com.bekvon.bukkit.residence.Residence.getInstance().getResidenceManager().getByLoc(location);
|
||||
if(res!=null){
|
||||
ResidencePermissions perms = res.getPermissions();
|
||||
return perms.playerHas(player, Flags.harvest, true);
|
||||
return perms.playerHas(player, Flags.destroy, true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ public record WorldGuard() implements Integration {
|
||||
RegionQuery query = container.createQuery();
|
||||
ApplicableRegionSet set = query.getApplicableRegions(BukkitAdapter.adapt(location));
|
||||
if (set != null){
|
||||
System.out.println(set);
|
||||
return query.testState(BukkitAdapter.adapt(location), localPlayer, Flags.BUILD);
|
||||
}else {
|
||||
return true;
|
||||
@@ -33,7 +32,6 @@ public record WorldGuard() implements Integration {
|
||||
RegionQuery query = container.createQuery();
|
||||
ApplicableRegionSet set = query.getApplicableRegions(BukkitAdapter.adapt(location));
|
||||
if (set != null){
|
||||
System.out.println(set);
|
||||
return query.testState(BukkitAdapter.adapt(location), localPlayer, Flags.BLOCK_BREAK);
|
||||
}else {
|
||||
return true;
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.momirealms.customcrops.ConfigReader;
|
||||
import net.momirealms.customcrops.datamanager.PotManager;
|
||||
import net.momirealms.customcrops.fertilizer.Fertilizer;
|
||||
import net.momirealms.customcrops.fertilizer.QualityCrop;
|
||||
import net.momirealms.customcrops.integrations.Integration;
|
||||
import net.momirealms.customcrops.utils.CropInstance;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Location;
|
||||
@@ -28,9 +29,12 @@ public class BreakBlock implements Listener {
|
||||
String namespacedId = event.getNamespacedID();
|
||||
if(namespacedId.contains("_stage_")){
|
||||
Player player =event.getPlayer();
|
||||
Location location = event.getBlock().getLocation();
|
||||
for (Integration integration : ConfigReader.Config.integration){
|
||||
if(!integration.canPlace(location, player)) return;
|
||||
}
|
||||
if(player.getInventory().getItemInMainHand().containsEnchantment(Enchantment.SILK_TOUCH) || player.getInventory().getItemInMainHand().getType() == Material.SHEARS){
|
||||
event.setCancelled(true);
|
||||
Location location = event.getBlock().getLocation();
|
||||
CustomBlock.place(namespacedId, location);
|
||||
CustomBlock.byAlreadyPlaced(location.getBlock()).getLoot().forEach(itemStack -> {
|
||||
location.getWorld().dropItem(location.clone().add(0.5,0.2,0.5), itemStack);
|
||||
@@ -45,7 +49,6 @@ public class BreakBlock implements Listener {
|
||||
CropInstance cropInstance = ConfigReader.CROPS.get(cropNameList[0]);
|
||||
ThreadLocalRandom current = ThreadLocalRandom.current();
|
||||
int random = current.nextInt(cropInstance.getMin(), cropInstance.getMax() + 1);
|
||||
Location location = event.getBlock().getLocation();
|
||||
Location itemLoc = location.clone().add(0.5,0.2,0.5);
|
||||
World world = location.getWorld();
|
||||
Fertilizer fertilizer = PotManager.Cache.get(location.clone().subtract(0,1,0));
|
||||
@@ -65,19 +68,12 @@ public class BreakBlock implements Listener {
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_3()).getItemStack());
|
||||
}
|
||||
}
|
||||
}else {
|
||||
normalDrop(cropInstance, random, itemLoc, world);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < random; i++){
|
||||
double ran = Math.random();
|
||||
if (ran < ConfigReader.Config.quality_1){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_1()).getItemStack());
|
||||
}else if(ran > ConfigReader.Config.quality_2){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_2()).getItemStack());
|
||||
}else {
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_3()).getItemStack());
|
||||
}
|
||||
}
|
||||
normalDrop(cropInstance, random, itemLoc, world);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -86,6 +82,9 @@ public class BreakBlock implements Listener {
|
||||
PotManager.Cache.remove(location);
|
||||
World world = location.getWorld();
|
||||
Block blockUp = location.add(0,1,0).getBlock();
|
||||
for (Integration integration : ConfigReader.Config.integration){
|
||||
if(!integration.canPlace(location, event.getPlayer())) return;
|
||||
}
|
||||
if(CustomBlock.byAlreadyPlaced(blockUp) != null){
|
||||
String cropNamespacedId = CustomBlock.byAlreadyPlaced(blockUp).getNamespacedID();
|
||||
if(cropNamespacedId.contains("_stage_")){
|
||||
@@ -120,16 +119,7 @@ public class BreakBlock implements Listener {
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < random; i++){
|
||||
double ran = Math.random();
|
||||
if (ran < ConfigReader.Config.quality_1){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_1()).getItemStack());
|
||||
}else if(ran > ConfigReader.Config.quality_2){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_2()).getItemStack());
|
||||
}else {
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_3()).getItemStack());
|
||||
}
|
||||
}
|
||||
normalDrop(cropInstance, random, itemLoc, world);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -142,4 +132,17 @@ public class BreakBlock implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void normalDrop(CropInstance cropInstance, int random, Location itemLoc, World world) {
|
||||
for (int i = 0; i < random; i++){
|
||||
double ran = Math.random();
|
||||
if (ran < ConfigReader.Config.quality_1){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_1()).getItemStack());
|
||||
}else if(ran > ConfigReader.Config.quality_2){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_2()).getItemStack());
|
||||
}else {
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_3()).getItemStack());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,11 +49,11 @@ public class InteractEntity implements Listener {
|
||||
int z = location.getBlockZ();
|
||||
int maxWater = config.getWater();
|
||||
int currentWater = 0;
|
||||
Location loc = location.subtract(0,1,0).getBlock().getLocation().add(0,1,0);
|
||||
Sprinkler sprinkler = SprinklerManager.Cache.get(loc);
|
||||
if (itemStack.getType() == Material.WATER_BUCKET){
|
||||
itemStack.setType(Material.BUCKET);
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ITEM_BUCKET_FILL,1,1);
|
||||
Location loc = location.subtract(0,1,0).getBlock().getLocation().add(0,1,0);
|
||||
Sprinkler sprinkler = SprinklerManager.Cache.get(loc);
|
||||
if (sprinkler != null){
|
||||
currentWater = sprinkler.getWater();
|
||||
currentWater += ConfigReader.Config.sprinklerRefill;
|
||||
@@ -62,21 +62,27 @@ public class InteractEntity implements Listener {
|
||||
}
|
||||
sprinkler.setWater(currentWater);
|
||||
}else {
|
||||
StringBuilder stringBuilder = new StringBuilder().append(world).append(".").append(x/16).append(",").append(z/16).append(".").append(x).append(",").append(location.getBlockY()).append(",").append(z).append(".water");
|
||||
currentWater = plugin.getSprinklerManager().data.getInt(stringBuilder.toString());
|
||||
String path = world + "." + x / 16 + "," + z / 16 + "." + x + "," + location.getBlockY() + "," + z + ".water";
|
||||
currentWater = plugin.getSprinklerManager().data.getInt(path);
|
||||
currentWater += ConfigReader.Config.sprinklerRefill;
|
||||
if (currentWater > maxWater){
|
||||
currentWater = maxWater;
|
||||
}
|
||||
plugin.getSprinklerManager().data.set(stringBuilder.toString(), currentWater);
|
||||
plugin.getSprinklerManager().data.set(path, currentWater);
|
||||
}
|
||||
}else {
|
||||
if (sprinkler != null){
|
||||
currentWater = sprinkler.getWater();
|
||||
}else {
|
||||
String path = world + "." + x / 16 + "," + z / 16 + "." + x + "," + location.getBlockY() + "," + z + ".water";
|
||||
currentWater = plugin.getSprinklerManager().data.getInt(path);
|
||||
}
|
||||
}
|
||||
Location loc = armorStand.getLocation().add(0, ConfigReader.Message.sprinklerOffset,0);
|
||||
if (ConfigReader.Message.hasSprinklerInfo){
|
||||
String string = ConfigReader.Message.sprinklerLeft + ConfigReader.Message.sprinklerFull.repeat(currentWater) +
|
||||
ConfigReader.Message.sprinklerEmpty.repeat(maxWater - currentWater) + ConfigReader.Message.sprinklerRight;
|
||||
if(HoloUtil.cache.get(player) == null) {
|
||||
HoloUtil.showHolo(string.replace("{max_water}", String.valueOf(maxWater)).replace("{water}", String.valueOf(currentWater)), player, loc, ConfigReader.Message.sprinklerTime);
|
||||
HoloUtil.showHolo(string.replace("{max_water}", String.valueOf(maxWater)).replace("{water}", String.valueOf(currentWater)), player, location.add(0, ConfigReader.Message.sprinklerOffset,0), ConfigReader.Message.sprinklerTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import dev.lone.itemsadder.api.CustomBlock;
|
||||
import dev.lone.itemsadder.api.CustomStack;
|
||||
import net.momirealms.customcrops.ConfigReader;
|
||||
import net.momirealms.customcrops.CustomCrops;
|
||||
import net.momirealms.customcrops.datamanager.CropManager;
|
||||
import net.momirealms.customcrops.datamanager.PotManager;
|
||||
import net.momirealms.customcrops.datamanager.SeasonManager;
|
||||
@@ -92,19 +91,12 @@ public class RightClick implements Listener {
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_3()).getItemStack());
|
||||
}
|
||||
}
|
||||
}else {
|
||||
BreakBlock.normalDrop(cropInstance, random, itemLoc, world);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < random; i++){
|
||||
double ran = Math.random();
|
||||
if (ran < ConfigReader.Config.quality_1){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_1()).getItemStack());
|
||||
}else if(ran > ConfigReader.Config.quality_2){
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_2()).getItemStack());
|
||||
}else {
|
||||
world.dropItem(itemLoc, CustomStack.getInstance(cropInstance.getQuality_3()).getItemStack());
|
||||
}
|
||||
}
|
||||
BreakBlock.normalDrop(cropInstance, random, itemLoc, world);
|
||||
}
|
||||
}else {
|
||||
customBlock.getLoot().forEach(loot-> location.getWorld().dropItem(location.clone().add(0.5,0.2,0.5), loot));
|
||||
@@ -225,13 +217,30 @@ public class RightClick implements Listener {
|
||||
}
|
||||
String namespacedID = customBlock.getNamespacedID();
|
||||
if (namespacedID.equals(ConfigReader.Basic.pot) || namespacedID.equals(ConfigReader.Basic.watered_pot)){
|
||||
itemStack.setAmount(itemStack.getAmount() - 1);
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ITEM_HOE_TILL,1,1);
|
||||
addFertilizer(fertilizerConfig, block);
|
||||
}else if (!fertilizerConfig.isBefore() && namespacedID.contains("_stage_")){
|
||||
itemStack.setAmount(itemStack.getAmount() - 1);
|
||||
addFertilizer(fertilizerConfig, block);
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ITEM_HOE_TILL,1,1);
|
||||
CustomBlock customBlockUp = CustomBlock.byAlreadyPlaced(block.getLocation().clone().add(0,1,0).getBlock());
|
||||
if (customBlockUp != null){
|
||||
if (fertilizerConfig.isBefore() && customBlockUp.getNamespacedID().contains("_stage_")){
|
||||
AdventureManager.playerMessage(player, ConfigReader.Message.prefix + ConfigReader.Message.beforePlant);
|
||||
return;
|
||||
}else {
|
||||
itemStack.setAmount(itemStack.getAmount() - 1);
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ITEM_HOE_TILL,1,1);
|
||||
addFertilizer(fertilizerConfig, block);
|
||||
}
|
||||
}else {
|
||||
itemStack.setAmount(itemStack.getAmount() - 1);
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ITEM_HOE_TILL,1,1);
|
||||
addFertilizer(fertilizerConfig, block);
|
||||
}
|
||||
}else if (namespacedID.contains("_stage_")){
|
||||
if (!fertilizerConfig.isBefore()){
|
||||
itemStack.setAmount(itemStack.getAmount() - 1);
|
||||
addFertilizer(fertilizerConfig, block);
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ITEM_HOE_TILL,1,1);
|
||||
}else {
|
||||
AdventureManager.playerMessage(player, ConfigReader.Message.prefix + ConfigReader.Message.beforePlant);
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -249,6 +258,7 @@ public class RightClick implements Listener {
|
||||
return;
|
||||
}
|
||||
Sprinkler sprinklerData = new Sprinkler(sprinkler.get().getRange(), 0);
|
||||
itemStack.setAmount(itemStack.getAmount() - 1);
|
||||
SprinklerManager.Cache.put(location.add(0,1,0), sprinklerData);
|
||||
IAFurniture.placeFurniture(sprinkler.get().getNamespacedID_2(),location);
|
||||
return;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.momirealms.customcrops.utils;
|
||||
|
||||
import net.momirealms.customcrops.ConfigReader;
|
||||
import net.momirealms.customcrops.CustomCrops;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import net.momirealms.customcrops.ConfigReader;
|
||||
import net.momirealms.customcrops.CustomCrops;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
package net.momirealms.customcrops.utils;
|
||||
|
||||
public class WateringCan {
|
||||
|
||||
private final int max;
|
||||
private final int width;
|
||||
private final int length;
|
||||
|
||||
public WateringCan(int max, int width, int length){
|
||||
this.length = length;
|
||||
this.max = max;
|
||||
this.width = width;
|
||||
}
|
||||
public record WateringCan(int max, int width, int length) {
|
||||
|
||||
public int getMax() {
|
||||
return max;
|
||||
|
||||
Reference in New Issue
Block a user