From f5183b3bac5116ea34095534c30be80921d12475 Mon Sep 17 00:00:00 2001 From: Zrips <zripas@gmail.com> Date: Tue, 16 Oct 2018 15:17:37 +0300 Subject: [PATCH] Lets shorten restrictedBlocks file and use material names instead --- src/main/java/com/gamingmesh/jobs/Jobs.java | 3 + .../jobs/config/RestrictedBlockManager.java | 195 +++++------------- src/main/resources/jobConfig.yml | 2 +- 3 files changed, 55 insertions(+), 145 deletions(-) diff --git a/src/main/java/com/gamingmesh/jobs/Jobs.java b/src/main/java/com/gamingmesh/jobs/Jobs.java index 5f029ef1..e33e4ac6 100644 --- a/src/main/java/com/gamingmesh/jobs/Jobs.java +++ b/src/main/java/com/gamingmesh/jobs/Jobs.java @@ -783,6 +783,9 @@ public class Jobs extends JavaPlugin { YmlMaker jobShopItems = new YmlMaker(this, "shopItems.yml"); jobShopItems.saveDefaultConfig(); + YmlMaker restrictedBlocks = new YmlMaker(this, "restrictedBlocks.yml"); + restrictedBlocks.saveDefaultConfig(); + setPermissionHandler(new PermissionHandler(this)); setJobsClassloader(); setPlayerManager(); diff --git a/src/main/java/com/gamingmesh/jobs/config/RestrictedBlockManager.java b/src/main/java/com/gamingmesh/jobs/config/RestrictedBlockManager.java index 1d97a2d1..87888cb1 100644 --- a/src/main/java/com/gamingmesh/jobs/config/RestrictedBlockManager.java +++ b/src/main/java/com/gamingmesh/jobs/config/RestrictedBlockManager.java @@ -1,16 +1,13 @@ package com.gamingmesh.jobs.config; -import java.io.File; -import java.io.IOException; import java.util.HashMap; import java.util.Set; -import org.bukkit.configuration.file.YamlConfiguration; - import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.CMILib.CMIItemStack; +import com.gamingmesh.jobs.CMILib.ConfigReader; import com.gamingmesh.jobs.CMILib.ItemManager; -import com.gamingmesh.jobs.container.LocaleReader; +import com.gamingmesh.jobs.CMILib.ItemManager.CMIMaterial; public class RestrictedBlockManager { @@ -28,158 +25,68 @@ public class RestrictedBlockManager { * loads from Jobs/restrictedAreas.yml */ public synchronized void load() { - // No file create/load when boolean is false - if (!Jobs.getGCManager().useBlockProtection) { - return; - } + // No file create/load when boolean is false + if (!Jobs.getGCManager().useBlockProtection) { + return; + } + ConfigReader cfg = null; + try { + cfg = new ConfigReader("restrictedBlocks.yml"); + } catch (Exception e1) { + e1.printStackTrace(); + } + if (cfg == null) + return; - File f = new File(plugin.getDataFolder(), "restrictedBlocks.yml"); - YamlConfiguration config = YamlConfiguration.loadConfiguration(f); - CommentedYamlConfiguration writer = new CommentedYamlConfiguration(); - - LocaleReader c = new LocaleReader(config, writer); - - config.options().copyDefaults(true); - - c.getW().addComment("blocksTimer", "Block protected by timer in sec", + cfg.addComment("blocksTimer", "Block protected by timer in sec", "Category name can be any you like to be easily recognized", "id can be actual block id (use /jobs blockinfo to get correct id) or use block name", "By setting time to -1 will keep block protected until global cleanup, mainly used for structure blocks like diamond", - "If you want to have default value for all blocks, enale GlobalBlockTimer in generalConfig file"); + "If you want to have default value for all blocks, enable GlobalBlockTimer in generalConfig file"); - if (!c.getC().isConfigurationSection("blocksTimer")) { - c.getC().addDefault("blocksTimer.Sapling.id", 6); - c.getC().addDefault("blocksTimer.Sapling.cd", 60); - c.getC().addDefault("blocksTimer.leaves.id", 18); - c.getC().addDefault("blocksTimer.leaves.cd", 60); - c.getC().addDefault("blocksTimer.grass.id", "longgrass"); - c.getC().addDefault("blocksTimer.grass.cd", 60); - c.getC().addDefault("blocksTimer.deadBush.id", 32); - c.getC().addDefault("blocksTimer.deadBush.cd", 60); - - c.getC().addDefault("blocksTimer.rail.id", 66); - c.getC().addDefault("blocksTimer.rail.cd", 60); - c.getC().addDefault("blocksTimer.rail2.id", 27); - c.getC().addDefault("blocksTimer.rail2.cd", 60); - c.getC().addDefault("blocksTimer.rail3.id", 28); - c.getC().addDefault("blocksTimer.rail3.cd", 60); - c.getC().addDefault("blocksTimer.rail4.id", 157); - c.getC().addDefault("blocksTimer.rail4.cd", 60); - - c.getC().addDefault("blocksTimer.web.id", 30); - c.getC().addDefault("blocksTimer.web.cd", 60); - - c.getC().addDefault("blocksTimer.dandelion.id", 37); - c.getC().addDefault("blocksTimer.dandelion.cd", 60); - c.getC().addDefault("blocksTimer.poppy.id", 38); - c.getC().addDefault("blocksTimer.poppy.cd", 60); - c.getC().addDefault("blocksTimer.flower.id", 175); - c.getC().addDefault("blocksTimer.flower.cd", 60); - c.getC().addDefault("blocksTimer.mushroom.id", 39); - c.getC().addDefault("blocksTimer.mushroom.cd", 60); - c.getC().addDefault("blocksTimer.mushroomRed.id", 40); - c.getC().addDefault("blocksTimer.mushroomRed.cd", 60); - - c.getC().addDefault("blocksTimer.torch.id", 50); - c.getC().addDefault("blocksTimer.torch.cd", 60); - c.getC().addDefault("blocksTimer.redTorch.id", 76); - c.getC().addDefault("blocksTimer.redTorch.cd", 60); - - c.getC().addDefault("blocksTimer.lader.id", 65); - c.getC().addDefault("blocksTimer.lader.cd", 5); - c.getC().addDefault("blocksTimer.carpet.id", 171); - c.getC().addDefault("blocksTimer.carpet.cd", 60); - - c.getC().addDefault("blocksTimer.button.id", 77); - c.getC().addDefault("blocksTimer.button.cd", 5); - c.getC().addDefault("blocksTimer.button2.id", 143); - c.getC().addDefault("blocksTimer.button2.cd", 5); - c.getC().addDefault("blocksTimer.lever.id", 69); - c.getC().addDefault("blocksTimer.lever.cd", 60); - - c.getC().addDefault("blocksTimer.snow.id", 78); - c.getC().addDefault("blocksTimer.snow.cd", 60); - c.getC().addDefault("blocksTimer.snow2.id", 80); - c.getC().addDefault("blocksTimer.snow2.cd", 60); - c.getC().addDefault("blocksTimer.hook.id", 131); - c.getC().addDefault("blocksTimer.hook.cd", 60); - c.getC().addDefault("blocksTimer.tripWire.id", 132); - c.getC().addDefault("blocksTimer.tripWire.cd", 60); - c.getC().addDefault("blocksTimer.redstone.id", 55); - c.getC().addDefault("blocksTimer.redstone.cd", 60); - c.getC().addDefault("blocksTimer.repeater.id", 93); - c.getC().addDefault("blocksTimer.repeater.cd", 60); - c.getC().addDefault("blocksTimer.comparator.id", 149); - c.getC().addDefault("blocksTimer.comparator.cd", 60); - - c.getC().addDefault("blocksTimer.lily.id", 111); - c.getC().addDefault("blocksTimer.lily.cd", 30); - c.getC().addDefault("blocksTimer.vines.id", 106); - c.getC().addDefault("blocksTimer.vines.cd", 30); - c.getC().addDefault("blocksTimer.wheat.id", 59); - c.getC().addDefault("blocksTimer.wheat.cd", 5); - c.getC().addDefault("blocksTimer.sugarcane.id", 83); - c.getC().addDefault("blocksTimer.sugarcane.cd", 30); - c.getC().addDefault("blocksTimer.cactus.id", 81); - c.getC().addDefault("blocksTimer.cactus.cd", 30); - c.getC().addDefault("blocksTimer.beatroot.id", 207); - c.getC().addDefault("blocksTimer.beatroot.cd", 60); - c.getC().addDefault("blocksTimer.potato.id", 142); - c.getC().addDefault("blocksTimer.potato.cd", 60); - c.getC().addDefault("blocksTimer.carrot.id", 141); - c.getC().addDefault("blocksTimer.carrot.cd", 60); - c.getC().addDefault("blocksTimer.warts.id", 115); - c.getC().addDefault("blocksTimer.warts.cd", 60); - c.getC().addDefault("blocksTimer.pumpkin.id", 86); - c.getC().addDefault("blocksTimer.pumpkin.cd", 30); - c.getC().addDefault("blocksTimer.pumpkinstem.id", 104); - c.getC().addDefault("blocksTimer.pumpkinstem.cd", 30); - c.getC().addDefault("blocksTimer.melon.id", 103); - c.getC().addDefault("blocksTimer.melon.cd", 30); - c.getC().addDefault("blocksTimer.melonstem.id", 105); - c.getC().addDefault("blocksTimer.melonstem.cd", 30); - - c.getC().addDefault("blocksTimer.goldore.id", "goldore"); - c.getC().addDefault("blocksTimer.goldore.cd", -1); - c.getC().addDefault("blocksTimer.ironore.id", "ironore"); - c.getC().addDefault("blocksTimer.ironore.cd", -1); - c.getC().addDefault("blocksTimer.coalore.id", "coalore"); - c.getC().addDefault("blocksTimer.coalore.cd", -1); - c.getC().addDefault("blocksTimer.lapisore.id", "lapisore"); - c.getC().addDefault("blocksTimer.lapisore.cd", -1); - c.getC().addDefault("blocksTimer.diamondore.id", "diamondore"); - c.getC().addDefault("blocksTimer.diamondore.cd", -1); - c.getC().addDefault("blocksTimer.redstoneore.id", "redstoneore"); - c.getC().addDefault("blocksTimer.redstoneore.cd", -1); - c.getC().addDefault("blocksTimer.emeraldore.id", "emeraldore"); - c.getC().addDefault("blocksTimer.emeraldore.cd", -1); - c.getC().addDefault("blocksTimer.quartzore.id", "quartzore"); - c.getC().addDefault("blocksTimer.quartzore.cd", -1); - } - - if (c.getC().isConfigurationSection("blocksTimer")) { - Set<String> lss = c.getC().getConfigurationSection("blocksTimer").getKeys(false); + if (cfg.getC().isConfigurationSection("blocksTimer")) { + Set<String> lss = cfg.getC().getConfigurationSection("blocksTimer").getKeys(false); for (String one : lss) { - if (((c.getC().isString("blocksTimer." + one + ".id")) || (c.getC().isInt("blocksTimer." + one + ".id"))) && (c.getC().isInt("blocksTimer." + one + if (((cfg.getC().isString("blocksTimer." + one + ".id")) || (cfg.getC().isInt("blocksTimer." + one + ".id"))) && (cfg.getC().isInt("blocksTimer." + one + ".cd"))) { - CMIItemStack cm = ItemManager.getItem(c.getC().getString("blocksTimer." + one + ".id")); + CMIItemStack cm = ItemManager.getItem(cfg.getC().getString("blocksTimer." + one + ".id")); if ((cm == null) || (!cm.getCMIType().isBlock())) { - Jobs.consoleMsg("&e[Jobs] Your defined (" + c.getC().getString(new StringBuilder("blocksTimer.").append(one) - .append(".id").toString()) + ") protected block id/name is not correct!"); - } else { - this.restrictedBlocksTimer.put(cm.getId(), c.getC().getInt("blocksTimer." + one + ".cd")); + Jobs.consoleMsg("&e[Jobs] Your defined (" + one + ") protected block id/name is not correct!"); + continue; } + + this.restrictedBlocksTimer.put(cm.getCMIType().getId(), cfg.getC().getInt("blocksTimer." + one + ".cd")); + + cfg.set("blocksTimer." + cm.getCMIType().name(), cfg.getC().getInt("blocksTimer." + one + ".cd")); + + } else { + + int timer = cfg.get("blocksTimer." + one, -99); + CMIMaterial mat = CMIMaterial.get(one); + + if (mat == null) + continue; + + if (timer == -99) { + cfg.set("blocksTimer." + one, null); + continue; + } + + cfg.set("blocksTimer." + one, null); + cfg.get("blocksTimer." + mat.name(), timer); + + if (!mat.isBlock()) { + Jobs.consoleMsg("&e[Jobs] Your defined (" + one + ") protected block id/name is not correct!"); + continue; + } + + this.restrictedBlocksTimer.put(mat.getId(), timer); } } } - c.copySetting("blocksTimer"); if (restrictedBlocksTimer.size() != 0) - Jobs.consoleMsg("&e[Jobs] Loaded " + this.restrictedBlocksTimer.size() + " protected blocks timers!"); - try { - writer.save(f); - } catch (IOException e) { - e.printStackTrace(); - } + Jobs.consoleMsg("&e[Jobs] Loaded " + this.restrictedBlocksTimer.size() + " protected blocks timers!"); + cfg.save(); } } diff --git a/src/main/resources/jobConfig.yml b/src/main/resources/jobConfig.yml index 9365e495..fa0e9bc7 100644 --- a/src/main/resources/jobConfig.yml +++ b/src/main/resources/jobConfig.yml @@ -1116,7 +1116,7 @@ Jobs: income: 0.25 points: 0.25 experience: 0.25 - GRASS: + GRASS_BLOCK: income: 0.3 points: 0.3 experience: 0.3