!Added additional level of abstraction to managers.

This commit is contained in:
Ethan 2020-11-06 00:42:48 -05:00
parent d1e3919aa0
commit 78b919bb3b
15 changed files with 91 additions and 126 deletions

View File

@ -2,12 +2,11 @@ package net.Indyuce.mmoitems.command.mmoitems;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
import net.mmogroup.mmolib.command.api.CommandTreeNode; import net.mmogroup.mmolib.command.api.CommandTreeNode;
import java.util.function.Consumer;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.util.function.Consumer;
public class ReloadCommandTreeNode extends CommandTreeNode { public class ReloadCommandTreeNode extends CommandTreeNode {
public ReloadCommandTreeNode(CommandTreeNode parent) { public ReloadCommandTreeNode(CommandTreeNode parent) {
super(parent, "reload"); super(parent, "reload");
@ -65,7 +64,7 @@ public class ReloadCommandTreeNode extends CommandTreeNode {
} }
public void reloadRecipes(CommandSender sender) { public void reloadRecipes(CommandSender sender) {
MMOItems.plugin.getRecipes().reloadRecipes(); MMOItems.plugin.getRecipes().reload();
sender.sendMessage(MMOItems.plugin.getPrefix() + "Successfully reloaded recipes."); sender.sendMessage(MMOItems.plugin.getPrefix() + "Successfully reloaded recipes.");
sender.sendMessage(MMOItems.plugin.getPrefix() + "- " + ChatColor.RED sender.sendMessage(MMOItems.plugin.getPrefix() + "- " + ChatColor.RED
+ (MMOItems.plugin.getRecipes().getLoadedRecipes().size() + (MMOItems.plugin.getRecipes().getLoadedRecipes().size()

View File

@ -1,19 +1,5 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.logging.Level;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.MultipleFacing;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.Type;
import net.Indyuce.mmoitems.api.block.CustomBlock; import net.Indyuce.mmoitems.api.block.CustomBlock;
@ -22,8 +8,15 @@ import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.MushroomState; import net.Indyuce.mmoitems.api.util.MushroomState;
import net.Indyuce.mmoitems.stat.data.DoubleData; import net.Indyuce.mmoitems.stat.data.DoubleData;
import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.ItemStat;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.MultipleFacing;
public class BlockManager { import java.util.*;
import java.util.logging.Level;
public class BlockManager implements Reloadable {
private final static List<Integer> downIds = Arrays.asList(new Integer[] { 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, private final static List<Integer> downIds = Arrays.asList(new Integer[] { 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,

View File

@ -28,7 +28,7 @@ import java.util.jar.JarEntry;
import java.util.jar.JarFile; import java.util.jar.JarFile;
import java.util.logging.Level; import java.util.logging.Level;
public class ConfigManager { public class ConfigManager implements Reloadable {
// cached config files // cached config files
private ConfigFile abilities, items, loreFormat, messages, potionEffects, stats, attackEffects, dynLore; private ConfigFile abilities, items, loreFormat, messages, potionEffects, stats, attackEffects, dynLore;

View File

@ -1,49 +1,30 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.crafting.ConditionalDisplay; import net.Indyuce.mmoitems.api.crafting.ConditionalDisplay;
import net.Indyuce.mmoitems.api.crafting.CraftingStation; import net.Indyuce.mmoitems.api.crafting.CraftingStation;
import net.Indyuce.mmoitems.api.crafting.condition.ClassCondition; import net.Indyuce.mmoitems.api.crafting.condition.*;
import net.Indyuce.mmoitems.api.crafting.condition.Condition;
import net.Indyuce.mmoitems.api.crafting.condition.FoodCondition;
import net.Indyuce.mmoitems.api.crafting.condition.LevelCondition;
import net.Indyuce.mmoitems.api.crafting.condition.ManaCondition;
import net.Indyuce.mmoitems.api.crafting.condition.PermissionCondition;
import net.Indyuce.mmoitems.api.crafting.condition.StaminaCondition;
import net.Indyuce.mmoitems.api.crafting.ingredient.Ingredient; import net.Indyuce.mmoitems.api.crafting.ingredient.Ingredient;
import net.Indyuce.mmoitems.api.crafting.ingredient.MMOItemIngredient; import net.Indyuce.mmoitems.api.crafting.ingredient.MMOItemIngredient;
import net.Indyuce.mmoitems.api.crafting.ingredient.VanillaIngredient; import net.Indyuce.mmoitems.api.crafting.ingredient.VanillaIngredient;
import net.Indyuce.mmoitems.api.crafting.trigger.CommandTrigger; import net.Indyuce.mmoitems.api.crafting.trigger.*;
import net.Indyuce.mmoitems.api.crafting.trigger.MMOItemTrigger;
import net.Indyuce.mmoitems.api.crafting.trigger.MessageTrigger;
import net.Indyuce.mmoitems.api.crafting.trigger.SoundTrigger;
import net.Indyuce.mmoitems.api.crafting.trigger.Trigger;
import net.Indyuce.mmoitems.api.crafting.trigger.VanillaTrigger;
import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicItemIngredient; import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicItemIngredient;
import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicMobsSkillTrigger; import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicMobsSkillTrigger;
import net.mmogroup.mmolib.api.MMOLineConfig; import net.mmogroup.mmolib.api.MMOLineConfig;
import net.mmogroup.mmolib.api.item.NBTItem; import net.mmogroup.mmolib.api.item.NBTItem;
import net.mmogroup.mmolib.api.util.AltChar; import net.mmogroup.mmolib.api.util.AltChar;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
public class CraftingManager { import java.io.File;
import java.util.*;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.logging.Level;
public class CraftingManager implements Reloadable {
/* /*
* order matters when trying to recognize an ingredient type: if none * order matters when trying to recognize an ingredient type: if none

View File

@ -31,7 +31,7 @@ import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.logging.Level; import java.util.logging.Level;
public class DropTableManager implements Listener { public class DropTableManager implements Listener, Reloadable {
private final Map<EntityType, DropTable> monsters = new HashMap<>(); private final Map<EntityType, DropTable> monsters = new HashMap<>();
private final Map<Material, DropTable> blocks = new HashMap<>(); private final Map<Material, DropTable> blocks = new HashMap<>();
private final Map<Integer, DropTable> customBlocks = new HashMap<>(); private final Map<Integer, DropTable> customBlocks = new HashMap<>();

View File

@ -1,17 +1,16 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.crafting.Layout;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.configuration.file.YamlConfiguration; public class LayoutManager implements Reloadable {
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.crafting.Layout;
public class LayoutManager {
private final Map<String, Layout> layouts = new HashMap<>(); private final Map<String, Layout> layouts = new HashMap<>();
public void reload() { public void reload() {

View File

@ -1,5 +1,9 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import net.Indyuce.mmoitems.MMOItems;
import org.apache.commons.lang3.Validate;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
@ -7,12 +11,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import org.apache.commons.lang3.Validate; public class LoreFormatManager implements Reloadable {
import org.bukkit.configuration.file.YamlConfiguration;
import net.Indyuce.mmoitems.MMOItems;
public class LoreFormatManager {
private final Map<String, List<String>> formats = new HashMap<>(); private final Map<String, List<String>> formats = new HashMap<>();
public void reload() { public void reload() {

View File

@ -1,27 +1,5 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.BlastingRecipe;
import org.bukkit.inventory.CampfireRecipe;
import org.bukkit.inventory.FurnaceRecipe;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.Recipe;
import org.bukkit.inventory.RecipeChoice;
import org.bukkit.inventory.SmokingRecipe;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.Type;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
@ -31,8 +9,23 @@ import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.MMOItemIngredient;
import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.VanillaIngredient; import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.VanillaIngredient;
import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient; import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient;
import net.mmogroup.mmolib.MMOLib; import net.mmogroup.mmolib.MMOLib;
import org.bukkit.Bukkit;
import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.*;
public class RecipeManager { import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.stream.Collectors;
public class RecipeManager implements Reloadable {
/** /**
* Custom recipes which are handled by MMOItems * Custom recipes which are handled by MMOItems
*/ */
@ -163,7 +156,7 @@ public class RecipeManager {
/** /**
* Unregisters bukkit recipes and loads everything again * Unregisters bukkit recipes and loads everything again
*/ */
public void reloadRecipes() { public void reload() {
Bukkit.getScheduler().runTask(MMOItems.plugin, () -> { Bukkit.getScheduler().runTask(MMOItems.plugin, () -> {
for (NamespacedKey recipe : getNamespacedKeys()) for (NamespacedKey recipe : getNamespacedKeys())
Bukkit.removeRecipe(recipe); Bukkit.removeRecipe(recipe);

View File

@ -0,0 +1,5 @@
package net.Indyuce.mmoitems.manager;
public interface Reloadable {
public void reload();
}

View File

@ -1,15 +1,15 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.ItemSet;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import net.Indyuce.mmoitems.MMOItems; public class SetManager implements Reloadable {
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.ItemSet;
public class SetManager {
private final Map<String, ItemSet> itemSets = new HashMap<>(); private final Map<String, ItemSet> itemSets = new HashMap<>();
public SetManager() { public SetManager() {

View File

@ -18,7 +18,7 @@ import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.logging.Level; import java.util.logging.Level;
public class TemplateManager { public class TemplateManager implements Reloadable {
/* /*
* registered mmoitem templates * registered mmoitem templates

View File

@ -1,19 +1,18 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import org.apache.commons.lang.Validate;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.ItemTier; import net.Indyuce.mmoitems.api.ItemTier;
import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem; import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem;
import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.ItemStat;
import org.apache.commons.lang.Validate;
public class TierManager { import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
public class TierManager implements Reloadable {
private final Map<String, ItemTier> tiers = new HashMap<>(); private final Map<String, ItemTier> tiers = new HashMap<>();
public TierManager() { public TierManager() {

View File

@ -1,19 +1,18 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.Type;
import net.Indyuce.mmoitems.manager.ConfigManager.DefaultFile;
import org.apache.commons.lang.Validate;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import org.apache.commons.lang.Validate; public class TypeManager implements Reloadable {
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.Type;
import net.Indyuce.mmoitems.manager.ConfigManager.DefaultFile;
public class TypeManager {
private final Map<String, Type> map = new LinkedHashMap<>(); private final Map<String, Type> map = new LinkedHashMap<>();
/** /**

View File

@ -1,17 +1,16 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.UpgradeTemplate;
import org.bukkit.configuration.file.FileConfiguration;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.configuration.file.FileConfiguration; public class UpgradeManager implements Reloadable {
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.UpgradeTemplate;
public class UpgradeManager {
private final Map<String, UpgradeTemplate> templates = new HashMap<>(); private final Map<String, UpgradeTemplate> templates = new HashMap<>();
public UpgradeManager() { public UpgradeManager() {

View File

@ -1,10 +1,9 @@
package net.Indyuce.mmoitems.manager; package net.Indyuce.mmoitems.manager;
import java.util.HashMap; import net.Indyuce.mmoitems.MMOItems;
import java.util.Map; import net.Indyuce.mmoitems.api.ConfigFile;
import java.util.Random; import net.Indyuce.mmoitems.api.block.CustomBlock;
import java.util.logging.Level; import net.Indyuce.mmoitems.api.block.WorldGenTemplate;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
@ -15,12 +14,12 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.event.world.ChunkLoadEvent;
import net.Indyuce.mmoitems.MMOItems; import java.util.HashMap;
import net.Indyuce.mmoitems.api.ConfigFile; import java.util.Map;
import net.Indyuce.mmoitems.api.block.CustomBlock; import java.util.Random;
import net.Indyuce.mmoitems.api.block.WorldGenTemplate; import java.util.logging.Level;
public class WorldGenManager implements Listener { public class WorldGenManager implements Listener, Reloadable {
private final Map<String, WorldGenTemplate> templates = new HashMap<>(); private final Map<String, WorldGenTemplate> templates = new HashMap<>();
/* /*