mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-24 17:39:26 +00:00
2.0.7
This commit is contained in:
@@ -4,7 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = 'net.momirealms'
|
||||
version = '2.0.6'
|
||||
version = '2.0.7'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package net.momirealms.customcrops.api.event;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.player.PlayerEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class WaterBucketFillSprinklerEvent extends PlayerEvent implements Cancellable {
|
||||
|
||||
private final ItemStack itemStack;
|
||||
private boolean cancelled;
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
public WaterBucketFillSprinklerEvent(@NotNull Player who, ItemStack itemStack) {
|
||||
super(who);
|
||||
this.itemStack = itemStack;
|
||||
this.cancelled = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean cancel) {
|
||||
cancelled = cancel;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public ItemStack getItemStack() {
|
||||
return itemStack;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (C) <2022> <XiaoMoMi>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package net.momirealms.customcrops.api.event;
|
||||
|
||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.player.PlayerEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class WaterCanFillSprinklerEvent extends PlayerEvent implements Cancellable {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancelled;
|
||||
private final NBTItem nbtItem;
|
||||
|
||||
public WaterCanFillSprinklerEvent(@NotNull Player who, NBTItem nbtItem) {
|
||||
super(who);
|
||||
this.cancelled = false;
|
||||
this.nbtItem = nbtItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean cancel) {
|
||||
this.cancelled = cancel;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return getHandlerList();
|
||||
}
|
||||
|
||||
public NBTItem getNbtItem() {
|
||||
return nbtItem;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (C) <2022> <XiaoMoMi>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package net.momirealms.customcrops.api.event;
|
||||
|
||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.player.PlayerEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class WaterPotEvent extends PlayerEvent implements Cancellable {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancelled;
|
||||
private final NBTItem nbtItem;
|
||||
private int currentWater;
|
||||
private final Location location;
|
||||
|
||||
public WaterPotEvent(@NotNull Player who, Location location, NBTItem nbtItem, int currentWater) {
|
||||
super(who);
|
||||
this.cancelled = false;
|
||||
this.nbtItem = nbtItem;
|
||||
this.currentWater = currentWater;
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean cancel) {
|
||||
this.cancelled = cancel;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return getHandlerList();
|
||||
}
|
||||
|
||||
public NBTItem getNbtItem() {
|
||||
return nbtItem;
|
||||
}
|
||||
|
||||
public int getCurrentWater() {
|
||||
return currentWater;
|
||||
}
|
||||
|
||||
public void setCurrentWater(int currentWater) {
|
||||
this.currentWater = currentWater;
|
||||
}
|
||||
|
||||
public Location getLocation() {
|
||||
return location;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
package net.momirealms.customcrops.api.event;
|
||||
|
||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
@@ -28,12 +29,14 @@ public class WateringCanFillEvent extends PlayerEvent implements Cancellable {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancelled;
|
||||
private ItemStack itemStack;
|
||||
private final NBTItem nbtItem;
|
||||
private int currentWater;
|
||||
|
||||
public WateringCanFillEvent(@NotNull Player who, ItemStack itemStack) {
|
||||
public WateringCanFillEvent(@NotNull Player who, NBTItem nbtItem, int currentWater) {
|
||||
super(who);
|
||||
this.cancelled = false;
|
||||
this.itemStack = itemStack;
|
||||
this.nbtItem = nbtItem;
|
||||
this.currentWater = currentWater;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,15 +60,15 @@ public class WateringCanFillEvent extends PlayerEvent implements Cancellable {
|
||||
return getHandlerList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the item player use
|
||||
* @return itemStack
|
||||
*/
|
||||
public ItemStack getItemStack() {
|
||||
return itemStack;
|
||||
public NBTItem getNbtItem() {
|
||||
return nbtItem;
|
||||
}
|
||||
|
||||
public void setItemStack(ItemStack itemStack) {
|
||||
this.itemStack = itemStack;
|
||||
public int getCurrentWater() {
|
||||
return currentWater;
|
||||
}
|
||||
|
||||
public void setCurrentWater(int currentWater) {
|
||||
this.currentWater = currentWater;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ public class MainConfig {
|
||||
|
||||
skyLightLevel = config.getInt("mechanics.dead-if-no-sky-light.level", 10);
|
||||
needSkyLight = config.getBoolean("mechanics.dead-if-no-sky-light.enable", true);
|
||||
enableEvents = config.getBoolean("other-settings.enable-events", false);
|
||||
enableEvents = config.getBoolean("other-settings.enable-additional-events", false);
|
||||
|
||||
String[] split = StringUtils.split(config.getString("mechanics.default-quality-ratio", "17/2/1"), "/");
|
||||
double[] weight = new double[3];
|
||||
|
||||
@@ -48,7 +48,6 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.ShapedRecipe;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -105,12 +104,10 @@ public abstract class HandlerP extends Function {
|
||||
|
||||
if (itemStack.getType() == Material.WATER_BUCKET) {
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
SprinklerFillEvent sprinklerFillEvent = new SprinklerFillEvent(player, itemStack);
|
||||
Bukkit.getPluginManager().callEvent(sprinklerFillEvent);
|
||||
if (sprinklerFillEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
WaterBucketFillSprinklerEvent waterBucketFillSprinklerEvent = new WaterBucketFillSprinklerEvent(player, itemStack);
|
||||
Bukkit.getPluginManager().callEvent(waterBucketFillSprinklerEvent);
|
||||
if (waterBucketFillSprinklerEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
itemStack.setType(Material.BUCKET);
|
||||
@@ -137,12 +134,10 @@ public abstract class HandlerP extends Function {
|
||||
int canWater = nbtItem.getInteger("WaterAmount");
|
||||
if (canWater > 0) {
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
SprinklerFillEvent sprinklerFillEvent = new SprinklerFillEvent(player, itemStack);
|
||||
Bukkit.getPluginManager().callEvent(sprinklerFillEvent);
|
||||
if (sprinklerFillEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
WaterCanFillSprinklerEvent waterCanFillSprinklerEvent = new WaterCanFillSprinklerEvent(player, nbtItem);
|
||||
Bukkit.getPluginManager().callEvent(waterCanFillSprinklerEvent);
|
||||
if (waterCanFillSprinklerEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
nbtItem.setInteger("WaterAmount", --canWater);
|
||||
@@ -207,12 +202,10 @@ public abstract class HandlerP extends Function {
|
||||
if (customWorld == null) return false;
|
||||
Fertilizer fertilizer = customWorld.getFertilizer(potLoc);
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
SurveyorUseEvent surveyorUseEvent = new SurveyorUseEvent(player, fertilizer, potLoc);
|
||||
Bukkit.getPluginManager().callEvent(surveyorUseEvent);
|
||||
if (surveyorUseEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
SurveyorUseEvent surveyorUseEvent = new SurveyorUseEvent(player, fertilizer, potLoc);
|
||||
Bukkit.getPluginManager().callEvent(surveyorUseEvent);
|
||||
if (surveyorUseEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (fertilizer != null) {
|
||||
@@ -298,12 +291,10 @@ public abstract class HandlerP extends Function {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
SprinklerPlaceEvent sprinklerPlaceEvent = new SprinklerPlaceEvent(player, sprinklerLoc);
|
||||
Bukkit.getPluginManager().callEvent(sprinklerPlaceEvent);
|
||||
if (sprinklerPlaceEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
SprinklerPlaceEvent sprinklerPlaceEvent = new SprinklerPlaceEvent(player, sprinklerLoc);
|
||||
Bukkit.getPluginManager().callEvent(sprinklerPlaceEvent);
|
||||
if (sprinklerPlaceEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (SoundConfig.placeSprinkler.isEnable()) {
|
||||
@@ -344,18 +335,14 @@ public abstract class HandlerP extends Function {
|
||||
if (block.getType() == Material.WATER) {
|
||||
if (config.getMax() > water) {
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
WateringCanFillEvent wateringCanFillEvent = new WateringCanFillEvent(player, itemStack);
|
||||
Bukkit.getPluginManager().callEvent(wateringCanFillEvent);
|
||||
if (wateringCanFillEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
WateringCanFillEvent wateringCanFillEvent = new WateringCanFillEvent(player, nbtItem, water += MainConfig.waterToWaterCan);
|
||||
Bukkit.getPluginManager().callEvent(wateringCanFillEvent);
|
||||
if (wateringCanFillEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
water += MainConfig.waterToWaterCan;
|
||||
if (water > config.getMax()) water = config.getMax();
|
||||
nbtItem.setInteger("WaterAmount", water);
|
||||
|
||||
if (wateringCanFillEvent.getCurrentWater() > config.getMax()) water = config.getMax();
|
||||
nbtItem.setInteger("WaterAmount", wateringCanFillEvent.getCurrentWater());
|
||||
|
||||
if (SoundConfig.addWaterToCan.isEnable()) {
|
||||
AdventureUtil.playerSound(
|
||||
@@ -371,7 +358,7 @@ public abstract class HandlerP extends Function {
|
||||
}
|
||||
|
||||
if (MainConfig.enableWaterCanLore && !MainConfig.enablePacketLore) {
|
||||
addWaterLore(nbtItem, config, water);
|
||||
addWaterLore(nbtItem, config, wateringCanFillEvent.getCurrentWater());
|
||||
}
|
||||
|
||||
itemStack.setItemMeta(nbtItem.getItem().getItemMeta());
|
||||
@@ -440,12 +427,10 @@ public abstract class HandlerP extends Function {
|
||||
}
|
||||
}
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
FertilizerUseEvent fertilizerUseEvent = new FertilizerUseEvent(player, fertilizer, potLoc);
|
||||
Bukkit.getPluginManager().callEvent(fertilizerUseEvent);
|
||||
if (fertilizerUseEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
FertilizerUseEvent fertilizerUseEvent = new FertilizerUseEvent(player, fertilizer, potLoc);
|
||||
Bukkit.getPluginManager().callEvent(fertilizerUseEvent);
|
||||
if (fertilizerUseEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (fertilizer.getParticle() != null) {
|
||||
@@ -601,12 +586,10 @@ public abstract class HandlerP extends Function {
|
||||
}
|
||||
}
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
SeedPlantEvent seedPlantEvent = new SeedPlantEvent(player, seedLoc, crop);
|
||||
Bukkit.getPluginManager().callEvent(seedPlantEvent);
|
||||
if (seedPlantEvent.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
SeedPlantEvent seedPlantEvent = new SeedPlantEvent(player, seedLoc, crop);
|
||||
Bukkit.getPluginManager().callEvent(seedPlantEvent);
|
||||
if (seedPlantEvent.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (SoundConfig.plantSeed.isEnable() && player != null) {
|
||||
|
||||
@@ -19,13 +19,12 @@ package net.momirealms.customcrops.integrations.customplugin.itemsadder;
|
||||
|
||||
import de.tr7zw.changeme.nbtapi.NBTCompound;
|
||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import dev.lone.itemsadder.api.CustomBlock;
|
||||
import dev.lone.itemsadder.api.CustomStack;
|
||||
import dev.lone.itemsadder.api.Events.*;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.momirealms.customcrops.CustomCrops;
|
||||
import net.momirealms.customcrops.api.crop.Crop;
|
||||
import net.momirealms.customcrops.api.event.WaterEvent;
|
||||
import net.momirealms.customcrops.api.event.WaterPotEvent;
|
||||
import net.momirealms.customcrops.config.*;
|
||||
import net.momirealms.customcrops.integrations.AntiGrief;
|
||||
import net.momirealms.customcrops.integrations.customplugin.HandlerP;
|
||||
@@ -34,7 +33,6 @@ import net.momirealms.customcrops.integrations.customplugin.itemsadder.listeners
|
||||
import net.momirealms.customcrops.managers.CropManager;
|
||||
import net.momirealms.customcrops.managers.CustomWorld;
|
||||
import net.momirealms.customcrops.objects.WaterCan;
|
||||
import net.momirealms.customcrops.objects.fertilizer.Fertilizer;
|
||||
import net.momirealms.customcrops.utils.AdventureUtil;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -150,12 +148,10 @@ public abstract class ItemsAdderHandler extends HandlerP {
|
||||
int water = nbtItem.getInteger("WaterAmount");
|
||||
if (water > 0) {
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
WaterEvent waterEvent = new WaterEvent(player, can.getItemStack());
|
||||
Bukkit.getPluginManager().callEvent(waterEvent);
|
||||
if (waterEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
WaterPotEvent waterPotEvent = new WaterPotEvent(player, potLoc, nbtItem, --water);
|
||||
Bukkit.getPluginManager().callEvent(waterPotEvent);
|
||||
if (waterPotEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
NBTCompound nbtCompound = nbtItem.getCompound("itemsadder");
|
||||
@@ -173,7 +169,7 @@ public abstract class ItemsAdderHandler extends HandlerP {
|
||||
}
|
||||
}
|
||||
|
||||
nbtItem.setInteger("WaterAmount", --water);
|
||||
nbtItem.setInteger("WaterAmount", waterPotEvent.getCurrentWater());
|
||||
|
||||
if (SoundConfig.waterPot.isEnable()) {
|
||||
AdventureUtil.playerSound(
|
||||
|
||||
@@ -24,7 +24,7 @@ import io.th0rgal.oraxen.items.OraxenItems;
|
||||
import io.th0rgal.oraxen.mechanics.provided.gameplay.furniture.FurnitureMechanic;
|
||||
import net.momirealms.customcrops.CustomCrops;
|
||||
import net.momirealms.customcrops.api.crop.Crop;
|
||||
import net.momirealms.customcrops.api.event.WaterEvent;
|
||||
import net.momirealms.customcrops.api.event.WaterPotEvent;
|
||||
import net.momirealms.customcrops.config.*;
|
||||
import net.momirealms.customcrops.integrations.customplugin.HandlerP;
|
||||
import net.momirealms.customcrops.integrations.customplugin.oraxen.listeners.OraxenBlockListener;
|
||||
@@ -144,15 +144,13 @@ public abstract class OraxenHandler extends HandlerP {
|
||||
int water = nbtItem.getInteger("WaterAmount");
|
||||
if (water > 0) {
|
||||
|
||||
if (MainConfig.enableEvents) {
|
||||
WaterEvent waterEvent = new WaterEvent(player, can);
|
||||
Bukkit.getPluginManager().callEvent(waterEvent);
|
||||
if (waterEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
WaterPotEvent waterPotEvent = new WaterPotEvent(player, potLoc, nbtItem, --water);
|
||||
Bukkit.getPluginManager().callEvent(waterPotEvent);
|
||||
if (waterPotEvent.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
nbtItem.setInteger("WaterAmount", --water);
|
||||
nbtItem.setInteger("WaterAmount", waterPotEvent.getCurrentWater());
|
||||
|
||||
if (SoundConfig.waterPot.isEnable()) {
|
||||
AdventureUtil.playerSound(
|
||||
|
||||
@@ -332,11 +332,9 @@ public class CropManager extends Function {
|
||||
|
||||
public void proceedHarvest(Crop crop, Player player, Location location, @Nullable Fertilizer fertilizer, boolean isRightClick) {
|
||||
//Call harvest event
|
||||
if (MainConfig.enableEvents) {
|
||||
CropHarvestEvent cropHarvestEvent = new CropHarvestEvent(player, crop, location, fertilizer);
|
||||
Bukkit.getPluginManager().callEvent(cropHarvestEvent);
|
||||
if (cropHarvestEvent.isCancelled()) return;
|
||||
}
|
||||
CropHarvestEvent cropHarvestEvent = new CropHarvestEvent(player, crop, location, fertilizer);
|
||||
Bukkit.getPluginManager().callEvent(cropHarvestEvent);
|
||||
if (cropHarvestEvent.isCancelled()) return;
|
||||
|
||||
if (!isRightClick && player.getGameMode() == GameMode.CREATIVE) return;
|
||||
ActionInterface[] actions = crop.getActions();
|
||||
@@ -444,10 +442,8 @@ public class CropManager extends Function {
|
||||
if (Math.random() < MainConfig.crowChance && !hasScarecrow(location)) {
|
||||
|
||||
Bukkit.getScheduler().runTask(CustomCrops.plugin, () -> {
|
||||
if (MainConfig.enableEvents) {
|
||||
CrowAttackEvent crowAttackEvent = new CrowAttackEvent(location);
|
||||
Bukkit.getPluginManager().callEvent(crowAttackEvent);
|
||||
}
|
||||
CrowAttackEvent crowAttackEvent = new CrowAttackEvent(location);
|
||||
Bukkit.getPluginManager().callEvent(crowAttackEvent);
|
||||
for (Player player : location.getNearbyPlayers(48)) {
|
||||
CrowTask crowTask = new CrowTask(player, location.clone().add(0.4,0,0.4), getArmorStandUtil());
|
||||
crowTask.runTaskTimerAsynchronously(CustomCrops.plugin, 1, 1);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Don't change
|
||||
# 请不要修改
|
||||
config-version: '16'
|
||||
config-version: '17'
|
||||
|
||||
# lang: english / spanish / chinese
|
||||
lang: english
|
||||
@@ -313,5 +313,7 @@ other-settings:
|
||||
# 3 days = 1 hour
|
||||
# Save the cache to file
|
||||
data-save-interval: 3
|
||||
# API events
|
||||
enable-events: false
|
||||
# PreAction events.
|
||||
# It's useful if your anti grief plugin is not supported
|
||||
# You can listen to PreActionEvent and cancel all the CustomCrops related events
|
||||
enable-additional-events: false
|
||||
Reference in New Issue
Block a user