Merge branch 'development'

This commit is contained in:
Brianna 2019-10-31 12:52:35 -04:00
commit 63ac3e1be2
9 changed files with 28 additions and 23 deletions

View File

@ -4,7 +4,7 @@ stages:
variables:
name: "EpicFarming"
path: "/builds/$CI_PROJECT_PATH"
version: "3.0.5"
version: "3.0.6"
build:
stage: build

View File

@ -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);
}

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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());

View File

@ -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;
}