From adb8fea46d30bd59cf317b6d27ccfbb527c1bd5c Mon Sep 17 00:00:00 2001 From: Brianna Date: Tue, 29 Oct 2019 08:24:09 -0400 Subject: [PATCH 1/3] fix legacy farming --- .../farming/levels/modules/Module.java | 7 ++---- .../levels/modules/ModuleAutoCollect.java | 24 ++++++++++++------- .../epicfarming/listeners/BlockListeners.java | 2 +- .../listeners/EntityListeners.java | 2 +- .../listeners/InteractListeners.java | 5 +--- .../listeners/UnloadListeners.java | 2 +- .../songoda/epicfarming/tasks/GrowthTask.java | 4 +++- 7 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/songoda/epicfarming/farming/levels/modules/Module.java b/src/main/java/com/songoda/epicfarming/farming/levels/modules/Module.java index fdc4143..e176760 100644 --- a/src/main/java/com/songoda/epicfarming/farming/levels/modules/Module.java +++ b/src/main/java/com/songoda/epicfarming/farming/levels/modules/Module.java @@ -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 currentTicks = new HashMap<>(); public Module(EpicFarming plugin) { this.plugin = plugin; @@ -37,16 +37,13 @@ public abstract class Module { public abstract int runEveryXTicks(); - private Map currentTicks = new HashMap<>(); - public void run(Farm farm, Collection 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); } diff --git a/src/main/java/com/songoda/epicfarming/farming/levels/modules/ModuleAutoCollect.java b/src/main/java/com/songoda/epicfarming/farming/levels/modules/ModuleAutoCollect.java index cd4ec67..c7f1971 100644 --- a/src/main/java/com/songoda/epicfarming/farming/levels/modules/ModuleAutoCollect.java +++ b/src/main/java/com/songoda/epicfarming/farming/levels/modules/ModuleAutoCollect.java @@ -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 lastTicksLived = new HashMap<>(); private static final Map 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); diff --git a/src/main/java/com/songoda/epicfarming/listeners/BlockListeners.java b/src/main/java/com/songoda/epicfarming/listeners/BlockListeners.java index b87e438..89ce76f 100644 --- a/src/main/java/com/songoda/epicfarming/listeners/BlockListeners.java +++ b/src/main/java/com/songoda/epicfarming/listeners/BlockListeners.java @@ -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; diff --git a/src/main/java/com/songoda/epicfarming/listeners/EntityListeners.java b/src/main/java/com/songoda/epicfarming/listeners/EntityListeners.java index 8bbb8b0..f0a5e33 100644 --- a/src/main/java/com/songoda/epicfarming/listeners/EntityListeners.java +++ b/src/main/java/com/songoda/epicfarming/listeners/EntityListeners.java @@ -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; diff --git a/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java b/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java index 926aeb4..a8c5215 100644 --- a/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java +++ b/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java @@ -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; diff --git a/src/main/java/com/songoda/epicfarming/listeners/UnloadListeners.java b/src/main/java/com/songoda/epicfarming/listeners/UnloadListeners.java index 1cc17d5..c384e3e 100644 --- a/src/main/java/com/songoda/epicfarming/listeners/UnloadListeners.java +++ b/src/main/java/com/songoda/epicfarming/listeners/UnloadListeners.java @@ -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; diff --git a/src/main/java/com/songoda/epicfarming/tasks/GrowthTask.java b/src/main/java/com/songoda/epicfarming/tasks/GrowthTask.java index 7e19c3e..565cff4 100644 --- a/src/main/java/com/songoda/epicfarming/tasks/GrowthTask.java +++ b/src/main/java/com/songoda/epicfarming/tasks/GrowthTask.java @@ -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; } From 2c37a79b468e1d2cd688bb31b9f8e28d159472b1 Mon Sep 17 00:00:00 2001 From: Brianna Date: Thu, 31 Oct 2019 12:51:55 -0400 Subject: [PATCH 2/3] Fixed strange issue with saving. --- src/main/java/com/songoda/epicfarming/storage/Storage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/songoda/epicfarming/storage/Storage.java b/src/main/java/com/songoda/epicfarming/storage/Storage.java index e845bc4..3ac8b71 100644 --- a/src/main/java/com/songoda/epicfarming/storage/Storage.java +++ b/src/main/java/com/songoda/epicfarming/storage/Storage.java @@ -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()); From 78a6d575fbf368ba39a6957d5249a7e098dd19f8 Mon Sep 17 00:00:00 2001 From: Brianna Date: Thu, 31 Oct 2019 12:52:30 -0400 Subject: [PATCH 3/3] version 3.0.6 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3530178..f1f8e40 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ stages: variables: name: "EpicFarming" path: "/builds/$CI_PROJECT_PATH" - version: "3.0.5" + version: "3.0.6" build: stage: build