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: variables:
name: "EpicFarming" name: "EpicFarming"
path: "/builds/$CI_PROJECT_PATH" path: "/builds/$CI_PROJECT_PATH"
version: "3.0.5" version: "3.0.6"
build: build:
stage: build stage: build

View File

@ -4,7 +4,6 @@ import com.songoda.core.configuration.Config;
import com.songoda.epicfarming.EpicFarming; import com.songoda.epicfarming.EpicFarming;
import com.songoda.epicfarming.farming.Farm; import com.songoda.epicfarming.farming.Farm;
import com.songoda.epicfarming.utils.Methods; import com.songoda.epicfarming.utils.Methods;
import org.bukkit.Bukkit;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
@ -21,6 +20,7 @@ public abstract class Module {
protected final EpicFarming plugin; protected final EpicFarming plugin;
private final Config config; private final Config config;
private final Map<Farm, Integer> currentTicks = new HashMap<>();
public Module(EpicFarming plugin) { public Module(EpicFarming plugin) {
this.plugin = plugin; this.plugin = plugin;
@ -37,16 +37,13 @@ public abstract class Module {
public abstract int runEveryXTicks(); public abstract int runEveryXTicks();
private Map<Farm, Integer> currentTicks = new HashMap<>();
public void run(Farm farm, Collection<LivingEntity> entitiesAroundFarm) { public void run(Farm farm, Collection<LivingEntity> entitiesAroundFarm) {
if (!currentTicks.containsKey(farm)) if (!currentTicks.containsKey(farm))
currentTicks.put(farm, 1); currentTicks.put(farm, 1);
int currentTick = currentTicks.get(farm); int currentTick = currentTicks.get(farm);
if (currentTick >= runEveryXTicks()) { if (currentTick >= runEveryXTicks()) {
runFinal(farm, entitiesAroundFarm); runFinal(farm, entitiesAroundFarm);
currentTicks.remove(farm); currentTick = 0;
return;
} }
currentTicks.put(farm, currentTick + 1); currentTicks.put(farm, currentTick + 1);
} }

View File

@ -13,18 +13,28 @@ import com.songoda.epicfarming.utils.Methods;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.block.Block; 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.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.material.Wool; 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 { public class ModuleAutoCollect extends Module {
private static Map<Entity, Integer> lastTicksLived = new HashMap<>(); private static Map<Entity, Integer> lastTicksLived = new HashMap<>();
private static final Map<Entity, Integer> ticksLived = 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) { public ModuleAutoCollect(EpicFarming plugin) {
super(plugin); super(plugin);
@ -51,13 +61,11 @@ public class ModuleAutoCollect extends Module {
private void collectCrops(Farm farm) { private void collectCrops(Farm farm) {
for (Block block : getCrops(farm, true)) { for (Block block : getCrops(farm, true)) {
Material mat = block.getType();
if (!CropType.isCrop(mat)) continue;
if (!BlockUtils.isCropFullyGrown(block)) { if (!BlockUtils.isCropFullyGrown(block)) {
// Add to GrowthTask // Add to GrowthTask
plugin.getGrowthTask().addLiveCrop(block.getLocation(), new Crop(block.getLocation(), farm)); 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()) { if (farm.getLevel().isAutoReplant()) {
BlockUtils.resetGrowthStage(block); BlockUtils.resetGrowthStage(block);
@ -176,9 +184,9 @@ public class ModuleAutoCollect extends Module {
for (int fy = -2; fy <= 1; fy++) { for (int fy = -2; fy <= 1; fy++) {
for (int fz = -radius; fz <= radius; fz++) { for (int fz = -radius; fz <= radius; fz++) {
Block b2 = block.getWorld().getBlockAt(bx + fx, by + fy, bz + 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) { if (add) {
farm.addCachedCrop(b2); farm.addCachedCrop(b2);

View File

@ -26,7 +26,7 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public class BlockListeners implements Listener { public class BlockListeners implements Listener {
private EpicFarming instance; private final EpicFarming instance;
public BlockListeners(EpicFarming instance) { public BlockListeners(EpicFarming instance) {
this.instance = instance; this.instance = instance;

View File

@ -27,7 +27,7 @@ import java.util.List;
public class EntityListeners implements Listener { public class EntityListeners implements Listener {
private EpicFarming instance; private final EpicFarming instance;
public EntityListeners(EpicFarming instance) { public EntityListeners(EpicFarming instance) {
this.instance = instance; this.instance = instance;

View File

@ -1,23 +1,20 @@
package com.songoda.epicfarming.listeners; package com.songoda.epicfarming.listeners;
import com.songoda.epicfarming.EpicFarming; import com.songoda.epicfarming.EpicFarming;
import com.songoda.epicfarming.farming.Farm;
import com.songoda.epicfarming.settings.Settings; import com.songoda.epicfarming.settings.Settings;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material;
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;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.world.ChunkUnloadEvent;
/** /**
* Created by songoda on 3/14/2017. * Created by songoda on 3/14/2017.
*/ */
public class InteractListeners implements Listener { public class InteractListeners implements Listener {
private EpicFarming instance; private final EpicFarming instance;
public InteractListeners(EpicFarming instance) { public InteractListeners(EpicFarming instance) {
this.instance = instance; this.instance = instance;

View File

@ -13,7 +13,7 @@ import java.util.ArrayList;
public class UnloadListeners implements Listener { public class UnloadListeners implements Listener {
private EpicFarming instance; private final EpicFarming instance;
public UnloadListeners(EpicFarming instance) { public UnloadListeners(EpicFarming instance) {
this.instance = 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.farming.Farm;
import com.songoda.epicfarming.utils.Methods; import com.songoda.epicfarming.utils.Methods;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public abstract class Storage { public abstract class Storage {
@ -29,7 +30,7 @@ public abstract class Storage {
/* /*
* Dump FarmManager to file. * Dump FarmManager to file.
*/ */
for (Farm farm : instance.getFarmManager().getFarms().values()) { for (Farm farm : new ArrayList<>(instance.getFarmManager().getFarms().values())) {
if (farm.getLocation() == null if (farm.getLocation() == null
|| farm.getLocation().getWorld() == null) continue; || farm.getLocation().getWorld() == null) continue;
String locstr = Methods.serializeLocation(farm.getLocation()); String locstr = Methods.serializeLocation(farm.getLocation());

View File

@ -1,5 +1,6 @@
package com.songoda.epicfarming.tasks; package com.songoda.epicfarming.tasks;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.utils.BlockUtils; import com.songoda.core.utils.BlockUtils;
import com.songoda.epicfarming.EpicFarming; import com.songoda.epicfarming.EpicFarming;
import com.songoda.epicfarming.farming.Crop; import com.songoda.epicfarming.farming.Crop;
@ -40,7 +41,8 @@ public class GrowthTask extends BukkitRunnable {
|| !crop.getFarm().isInLoadedChunk()) || !crop.getFarm().isInLoadedChunk())
continue; 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); toRemove.add(crop);
continue; continue;
} }