mirror of
https://github.com/songoda/EpicFarming.git
synced 2025-02-21 23:11:44 +01:00
Merge branch 'development'
This commit is contained in:
commit
63ac3e1be2
@ -4,7 +4,7 @@ stages:
|
||||
variables:
|
||||
name: "EpicFarming"
|
||||
path: "/builds/$CI_PROJECT_PATH"
|
||||
version: "3.0.5"
|
||||
version: "3.0.6"
|
||||
|
||||
build:
|
||||
stage: build
|
||||
|
@ -4,7 +4,6 @@ import com.songoda.core.configuration.Config;
|
||||
import com.songoda.epicfarming.EpicFarming;
|
||||
import com.songoda.epicfarming.farming.Farm;
|
||||
import com.songoda.epicfarming.utils.Methods;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
@ -21,6 +20,7 @@ public abstract class Module {
|
||||
|
||||
protected final EpicFarming plugin;
|
||||
private final Config config;
|
||||
private final Map<Farm, Integer> currentTicks = new HashMap<>();
|
||||
|
||||
public Module(EpicFarming plugin) {
|
||||
this.plugin = plugin;
|
||||
@ -37,16 +37,13 @@ public abstract class Module {
|
||||
|
||||
public abstract int runEveryXTicks();
|
||||
|
||||
private Map<Farm, Integer> currentTicks = new HashMap<>();
|
||||
|
||||
public void run(Farm farm, Collection<LivingEntity> entitiesAroundFarm) {
|
||||
if (!currentTicks.containsKey(farm))
|
||||
currentTicks.put(farm, 1);
|
||||
int currentTick = currentTicks.get(farm);
|
||||
if (currentTick >= runEveryXTicks()) {
|
||||
runFinal(farm, entitiesAroundFarm);
|
||||
currentTicks.remove(farm);
|
||||
return;
|
||||
currentTick = 0;
|
||||
}
|
||||
currentTicks.put(farm, currentTick + 1);
|
||||
}
|
||||
|
@ -13,18 +13,28 @@ import com.songoda.epicfarming.utils.Methods;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Sheep;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.material.Wool;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
public class ModuleAutoCollect extends Module {
|
||||
|
||||
private static Map<Entity, Integer> lastTicksLived = new HashMap<>();
|
||||
private static final Map<Entity, Integer> ticksLived = new HashMap<>();
|
||||
private Random random = new Random();
|
||||
private static final Random random = new Random();
|
||||
|
||||
public ModuleAutoCollect(EpicFarming plugin) {
|
||||
super(plugin);
|
||||
@ -51,13 +61,11 @@ public class ModuleAutoCollect extends Module {
|
||||
|
||||
private void collectCrops(Farm farm) {
|
||||
for (Block block : getCrops(farm, true)) {
|
||||
Material mat = block.getType();
|
||||
if (!CropType.isCrop(mat)) continue;
|
||||
|
||||
if (!BlockUtils.isCropFullyGrown(block)) {
|
||||
// Add to GrowthTask
|
||||
plugin.getGrowthTask().addLiveCrop(block.getLocation(), new Crop(block.getLocation(), farm));
|
||||
} else if (isEnabled(farm) && doCropDrop(farm, mat)) {
|
||||
} else if (isEnabled(farm) && doCropDrop(farm, CompatibleMaterial.getMaterial(block).getMaterial())) {
|
||||
|
||||
if (farm.getLevel().isAutoReplant()) {
|
||||
BlockUtils.resetGrowthStage(block);
|
||||
@ -176,9 +184,9 @@ public class ModuleAutoCollect extends Module {
|
||||
for (int fy = -2; fy <= 1; fy++) {
|
||||
for (int fz = -radius; fz <= radius; fz++) {
|
||||
Block b2 = block.getWorld().getBlockAt(bx + fx, by + fy, bz + fz);
|
||||
CompatibleMaterial mat = CompatibleMaterial.getMaterial(b2.getType());
|
||||
CompatibleMaterial mat = CompatibleMaterial.getMaterial(b2);
|
||||
|
||||
if (mat == null || !mat.isCrop()) continue;
|
||||
if (!mat.isCrop() || !CropType.isGrowableCrop(mat.getBlockMaterial())) continue;
|
||||
|
||||
if (add) {
|
||||
farm.addCachedCrop(b2);
|
||||
|
@ -26,7 +26,7 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||
@SuppressWarnings("Duplicates")
|
||||
public class BlockListeners implements Listener {
|
||||
|
||||
private EpicFarming instance;
|
||||
private final EpicFarming instance;
|
||||
|
||||
public BlockListeners(EpicFarming instance) {
|
||||
this.instance = instance;
|
||||
|
@ -27,7 +27,7 @@ import java.util.List;
|
||||
|
||||
public class EntityListeners implements Listener {
|
||||
|
||||
private EpicFarming instance;
|
||||
private final EpicFarming instance;
|
||||
|
||||
public EntityListeners(EpicFarming instance) {
|
||||
this.instance = instance;
|
||||
|
@ -1,23 +1,20 @@
|
||||
package com.songoda.epicfarming.listeners;
|
||||
|
||||
import com.songoda.epicfarming.EpicFarming;
|
||||
import com.songoda.epicfarming.farming.Farm;
|
||||
import com.songoda.epicfarming.settings.Settings;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.world.ChunkUnloadEvent;
|
||||
|
||||
/**
|
||||
* Created by songoda on 3/14/2017.
|
||||
*/
|
||||
public class InteractListeners implements Listener {
|
||||
|
||||
private EpicFarming instance;
|
||||
private final EpicFarming instance;
|
||||
|
||||
public InteractListeners(EpicFarming instance) {
|
||||
this.instance = instance;
|
||||
|
@ -13,7 +13,7 @@ import java.util.ArrayList;
|
||||
|
||||
public class UnloadListeners implements Listener {
|
||||
|
||||
private EpicFarming instance;
|
||||
private final EpicFarming instance;
|
||||
|
||||
public UnloadListeners(EpicFarming instance) {
|
||||
this.instance = instance;
|
||||
|
@ -6,6 +6,7 @@ import com.songoda.epicfarming.boost.BoostData;
|
||||
import com.songoda.epicfarming.farming.Farm;
|
||||
import com.songoda.epicfarming.utils.Methods;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class Storage {
|
||||
@ -29,7 +30,7 @@ public abstract class Storage {
|
||||
/*
|
||||
* Dump FarmManager to file.
|
||||
*/
|
||||
for (Farm farm : instance.getFarmManager().getFarms().values()) {
|
||||
for (Farm farm : new ArrayList<>(instance.getFarmManager().getFarms().values())) {
|
||||
if (farm.getLocation() == null
|
||||
|| farm.getLocation().getWorld() == null) continue;
|
||||
String locstr = Methods.serializeLocation(farm.getLocation());
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.songoda.epicfarming.tasks;
|
||||
|
||||
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||
import com.songoda.core.utils.BlockUtils;
|
||||
import com.songoda.epicfarming.EpicFarming;
|
||||
import com.songoda.epicfarming.farming.Crop;
|
||||
@ -40,7 +41,8 @@ public class GrowthTask extends BukkitRunnable {
|
||||
|| !crop.getFarm().isInLoadedChunk())
|
||||
continue;
|
||||
|
||||
if (!CropType.isGrowableCrop(crop.getLocation().getBlock().getType())) {
|
||||
CompatibleMaterial blockMat = CompatibleMaterial.getMaterial(crop.getLocation().getBlock());
|
||||
if(!blockMat.isCrop() || !CropType.isGrowableCrop(blockMat.getBlockMaterial())) {
|
||||
toRemove.add(crop);
|
||||
continue;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user