From be5f40b9c0e67ba882bc256814b7d2da6166fa8e Mon Sep 17 00:00:00 2001 From: tastybento Date: Thu, 30 Jan 2020 09:52:53 -0800 Subject: [PATCH] Removes recipe log spam. Fixes https://github.com/BentoBoxWorld/Greenhouses/issues/44 --- .../world/bentobox/greenhouses/Settings.java | 16 ++++ .../greenhouses/greenhouse/BiomeRecipe.java | 24 +++--- .../greenhouses/managers/RecipeManager.java | 2 +- src/main/resources/config.yml | 82 ++++++++----------- .../greenhouse/BiomeRecipeTest.java | 29 ++++--- 5 files changed, 81 insertions(+), 72 deletions(-) diff --git a/src/main/java/world/bentobox/greenhouses/Settings.java b/src/main/java/world/bentobox/greenhouses/Settings.java index 3db39aa..9ddd102 100644 --- a/src/main/java/world/bentobox/greenhouses/Settings.java +++ b/src/main/java/world/bentobox/greenhouses/Settings.java @@ -22,6 +22,10 @@ public class Settings implements ConfigObject { @ConfigComment("BentoBox GameModes that will use Greenhouses") @ConfigEntry(path = "greenhouses.game-modes") private List gameModes = new ArrayList<>(); + + @ConfigComment("Show loaded recipe details during startup of server") + @ConfigEntry(path = "greenhouses.startup-log") + private boolean startupLog = false; @ConfigComment("Weather and ecosystem settings") @ConfigComment("How often it should snow in the g/h when the weather is raining, in seconds") @@ -108,6 +112,18 @@ public class Settings implements ConfigObject { public int getMobTick() { return mobTick; } + /** + * @return the startupLog + */ + public boolean isStartupLog() { + return startupLog; + } + /** + * @param startupLog the startupLog to set + */ + public void setStartupLog(boolean startupLog) { + this.startupLog = startupLog; + } /** * @return the allowFlowOut */ diff --git a/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java b/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java index 3a20ef2..e9eb60f 100644 --- a/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java +++ b/src/main/java/world/bentobox/greenhouses/greenhouse/BiomeRecipe.java @@ -75,6 +75,10 @@ public class BiomeRecipe implements Comparable { this.priority = priority; mobLimit = 9; // Default } + + private void startupLog(String message) { + if (addon.getSettings().isStartupLog()) addon.log(message); + } /** * @param oldMaterial - material that will convert @@ -85,7 +89,7 @@ public class BiomeRecipe implements Comparable { public void addConvBlocks(Material oldMaterial, Material newMaterial, double convChance, Material localMaterial) { double probability = Math.min(convChance/100 , 1D); conversionBlocks.put(oldMaterial, new GreenhouseBlockConversions(oldMaterial, newMaterial, probability, localMaterial)); - addon.log(" " + convChance + CHANCE_FOR + Util.prettifyText(oldMaterial.toString()) + " to convert to " + Util.prettifyText(newMaterial.toString())); + startupLog(" " + convChance + CHANCE_FOR + Util.prettifyText(oldMaterial.toString()) + " to convert to " + Util.prettifyText(newMaterial.toString())); } @@ -96,7 +100,7 @@ public class BiomeRecipe implements Comparable { * @return true if add is successful */ public boolean addMobs(EntityType mobType, int mobProbability, Material mobSpawnOn) { - addon.log(" " + mobProbability + CHANCE_FOR + Util.prettifyText(mobType.toString()) + " to spawn on " + Util.prettifyText(mobSpawnOn.toString())+ "."); + startupLog(" " + mobProbability + CHANCE_FOR + Util.prettifyText(mobType.toString()) + " to spawn on " + Util.prettifyText(mobSpawnOn.toString())+ "."); double probability = ((double)mobProbability/100); double lastProb = mobTree.isEmpty() ? 0D : mobTree.lastKey(); // Add up all the probabilities in the list so far @@ -129,7 +133,7 @@ public class BiomeRecipe implements Comparable { addon.logError("Plant chances add up to > 100% in " + type.toString() + " biome recipe! Skipping " + plantMaterial.toString()); return false; } - addon.log(" " + plantProbability + CHANCE_FOR + Util.prettifyText(plantMaterial.toString()) + " to grow on " + Util.prettifyText(plantGrowOn.toString())); + startupLog(" " + plantProbability + CHANCE_FOR + Util.prettifyText(plantMaterial.toString()) + " to grow on " + Util.prettifyText(plantGrowOn.toString())); return true; } @@ -139,7 +143,7 @@ public class BiomeRecipe implements Comparable { */ public void addReqBlocks(Material blockMaterial, int blockQty) { requiredBlocks.put(blockMaterial, blockQty); - addon.log(" " + blockMaterial + " x " + blockQty); + startupLog(" " + blockMaterial + " x " + blockQty); } // Check required blocks @@ -398,9 +402,9 @@ public class BiomeRecipe implements Comparable { */ public void setIcecoverage(int iceCoverage) { if (iceCoverage == 0) { - addon.log(" No Ice Allowed"); + startupLog(" No Ice Allowed"); } else if (iceCoverage > 0) { - addon.log(" Ice > " + iceCoverage + "%"); + startupLog(" Ice > " + iceCoverage + "%"); } this.iceCoverage = iceCoverage; } @@ -417,9 +421,9 @@ public class BiomeRecipe implements Comparable { */ public void setLavacoverage(int lavaCoverage) { if (lavaCoverage == 0) { - addon.log(" No Lava Allowed"); + startupLog(" No Lava Allowed"); } else if (lavaCoverage > 0) { - addon.log(" Lava > " + lavaCoverage + "%"); + startupLog(" Lava > " + lavaCoverage + "%"); } this.lavaCoverage = lavaCoverage; } @@ -464,9 +468,9 @@ public class BiomeRecipe implements Comparable { */ public void setWatercoverage(int waterCoverage) { if (waterCoverage == 0) { - addon.log(" No Water Allowed"); + startupLog(" No Water Allowed"); } else if (waterCoverage > 0) { - addon.log(" Water > " + waterCoverage + "%"); + startupLog(" Water > " + waterCoverage + "%"); } this.waterCoverage = waterCoverage; } diff --git a/src/main/java/world/bentobox/greenhouses/managers/RecipeManager.java b/src/main/java/world/bentobox/greenhouses/managers/RecipeManager.java index 94c2fd3..3edc878 100644 --- a/src/main/java/world/bentobox/greenhouses/managers/RecipeManager.java +++ b/src/main/java/world/bentobox/greenhouses/managers/RecipeManager.java @@ -124,7 +124,7 @@ public class RecipeManager { BiomeRecipe b = new BiomeRecipe(addon, thisBiome, priority); // Set the name b.setName(biomeType); - addon.log("Adding biome recipe for " + biomeType); + if (addon.getSettings().isStartupLog()) addon.log("Adding biome recipe for " + biomeType); // Set the permission b.setPermission(biomeRecipeConfig.getString("permission","")); // Set the icon diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f19210a..c808a1d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,51 +1,33 @@ +# Greenhouses Configuration +# greenhouses: - # BentoBox GameModes that will use Greenhouses - game-modes: - - BSkyBlock - - AcidIsland - - SkyGrid - - # Console message level. - # List the levels of debug or messages you want. - # 0 = no messages except for warnings or severe errors - # 1 = normal messages (default) - # 2 and higher - debug levels - no need to use these unless you want to try debug - debug: - - 1 - - ### Permissions limits - # Set the maximum number of greenhouses a player can build - # using greenhouses.limit. - # This is the default max. -1 is unlimited - maxgreenhouses: -1 - # To have extra greenhouses deleted upon login set the following to true - deleteextras: false - - ### Weather and ecosystem settings - - # How often it should snow in the g/h when the weather is raining, in seconds - snowspeed: 30 - # Chance of any snow falling in a greenhouse when the snow tick occurs - # (1.0 = always, 0.0 = never) - snowchance: 1 - # How many blocks should get snow 1 = all of them, 0 = none, 0.1 = 1 in 10 - snowdensity: 0.1 - - # Biome activity - # How often should greenhouse biomes be checked to make sure they are still valid - ecotick: 5 - # How often should plants potentially grow in minutes if bonemeal is in the hopper - planttick: 1 - # How often should blocks potentially convert, in minutes - # Example: dirt-> sand in desert greenhouse - blocktick: 2 - # How often should mobs be potentially spawned in a greenhouse, in minutes - mobtick: 5 - - - ### Default settings for greenhouse actions - # Allow lava or water to flow out of a greenhouse, e.g. through the door, floor - allowflowout: false - # Allow lava or water to flow into a greenhouse, e.g., through the door - allowflowin: false - \ No newline at end of file + # BentoBox GameModes that will use Greenhouses + game-modes: + - BSkyBlock + - AcidIsland + - SkyGrid + # Show loaded recipe details during startup of server + startup-log: false + # Weather and ecosystem settings + # How often it should snow in the g/h when the weather is raining, in seconds + snowspeed: 30.0 + # Chance of any snow falling in a greenhouse when the snow tick occurs + # (1.0 = always, 0.0 = never) + snowchance: 1.0 + # How many blocks should get snow 1 = all of them, 0 = none, 0.1 = 1 in 10 + snowdensity: 0.1 + # Biome activity + # How often should greenhouse biomes be checked to make sure they are still valid + ecotick: 5 + # How often should plants potentially grow in minutes if bonemeal is in the hopper + planttick: 1 + # How often should blocks potentially convert, in minutes + # Example: dirt-> sand in desert greenhouse + blocktick: 2 + # How often should mobs be potentially spawned in a greenhouse, in minutes + mobtick: 5 + # Default settings for greenhouse actions + # Allow lava or water to flow out of a greenhouse, e.g. through the door, floor + allowflowout: false + # Allow lava or water to flow into a greenhouse, e.g., through the door + allowflowin: false diff --git a/src/test/java/world/bentobox/greenhouses/greenhouse/BiomeRecipeTest.java b/src/test/java/world/bentobox/greenhouses/greenhouse/BiomeRecipeTest.java index 645cf20..a969db6 100644 --- a/src/test/java/world/bentobox/greenhouses/greenhouse/BiomeRecipeTest.java +++ b/src/test/java/world/bentobox/greenhouses/greenhouse/BiomeRecipeTest.java @@ -42,6 +42,7 @@ import org.powermock.modules.junit4.PowerMockRunner; import world.bentobox.bentobox.BentoBox; import world.bentobox.greenhouses.Greenhouses; +import world.bentobox.greenhouses.Settings; import world.bentobox.greenhouses.data.Greenhouse; import world.bentobox.greenhouses.managers.GreenhouseManager; import world.bentobox.greenhouses.managers.GreenhouseManager.GreenhouseResult; @@ -80,6 +81,8 @@ public class BiomeRecipeTest { private GreenhouseMap map; @Mock private BukkitScheduler scheduler; + @Mock + private Settings settings; /** * @throws java.lang.Exception @@ -108,16 +111,7 @@ public class BiomeRecipeTest { when(block.getLocation()).thenReturn(location); when(location.clone()).thenReturn(location); when(location.add(any(Vector.class))).thenReturn(location); - // Set up default recipe - br = new BiomeRecipe(addon, type, 0); - br.setIcecoverage(2); // 1% - br.setLavacoverage(1); // 1% - br.setWatercoverage(1); // 1% - br.addReqBlocks(Material.GRASS_BLOCK, 2); - br.setFriendlyName("name"); - br.setName("name2"); - br.setIcon(Material.ACACIA_BOAT); - br.setPermission("perm"); + // Plugin when(addon.getPlugin()).thenReturn(plugin); // Manager @@ -128,7 +122,20 @@ public class BiomeRecipeTest { when(map.getGreenhouse(any(Location.class))).thenReturn(optionalGh); // Bukkit Scheduler when(Bukkit.getScheduler()).thenReturn(scheduler); - + // Settings + when(addon.getSettings()).thenReturn(settings); + when(settings.isStartupLog()).thenReturn(true); + + // Set up default recipe + br = new BiomeRecipe(addon, type, 0); + br.setIcecoverage(2); // 1% + br.setLavacoverage(1); // 1% + br.setWatercoverage(1); // 1% + br.addReqBlocks(Material.GRASS_BLOCK, 2); + br.setFriendlyName("name"); + br.setName("name2"); + br.setIcon(Material.ACACIA_BOAT); + br.setPermission("perm"); } /**