diff --git a/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java b/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java index d2bcabf..15f00f7 100644 --- a/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java +++ b/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java @@ -14,6 +14,9 @@ import org.bukkit.plugin.java.JavaPlugin; import java.util.HashSet; import java.util.Set; +/** + * @author Esophose + */ public class UltimateTimber extends JavaPlugin { private static final CommandSender console = Bukkit.getConsoleSender(); @@ -22,11 +25,11 @@ public class UltimateTimber extends JavaPlugin { private Set managers; private VersionAdapter versionAdapter; + private ChoppingManager choppingManager; + private CommandManager commandManager; private ConfigurationManager configurationManager; - private DisabledWorldManager disabledWorldManager; private HookManager hookManager; private MessageManager messageManager; - private SettingsManager settingsManager; private TreeAnimationManager treeAnimationManager; private TreeDefinitionManager treeDefinitionManager; private TreeDetectionManager treeDetectionManager; @@ -45,18 +48,17 @@ public class UltimateTimber extends JavaPlugin { console.sendMessage(Methods.formatText("&7Action: &aEnabling&7...")); this.managers = new HashSet<>(); + this.choppingManager = this.registerManager(ChoppingManager.class); + this.commandManager = this.registerManager(CommandManager.class); this.configurationManager = this.registerManager(ConfigurationManager.class); - this.disabledWorldManager = this.registerManager(DisabledWorldManager.class); this.hookManager = this.registerManager(HookManager.class); this.messageManager = this.registerManager(MessageManager.class); - this.settingsManager = this.registerManager(SettingsManager.class); this.treeAnimationManager = this.registerManager(TreeAnimationManager.class); this.treeDefinitionManager = this.registerManager(TreeDefinitionManager.class); this.treeDetectionManager = this.registerManager(TreeDetectionManager.class); this.treeFallManager = this.registerManager(TreeFallManager.class); this.setupVersionAdapter(); - this.reload(); new Metrics(this); @@ -110,6 +112,7 @@ public class UltimateTimber extends JavaPlugin { try { T newManager = managerClass.getConstructor(UltimateTimber.class).newInstance(this); this.managers.add(newManager); + newManager.reload(); return newManager; } catch (Exception ignored) { return null; @@ -125,6 +128,24 @@ public class UltimateTimber extends JavaPlugin { return this.versionAdapter; } + /** + * Gets the chopping manager + * + * @return The ChoppingManager instance + */ + public ChoppingManager getChoppingManager() { + return this.choppingManager; + } + + /** + * Gets the command manager + * + * @return The CommandManager instance + */ + public CommandManager getCommandManager() { + return this.commandManager; + } + /** * Gets the configuration manager * @@ -134,15 +155,6 @@ public class UltimateTimber extends JavaPlugin { return configurationManager; } - /** - * Gets the disabled world manager - * - * @return The DisabledWorldManager instance - */ - public DisabledWorldManager getDisabledWorldManager() { - return disabledWorldManager; - } - /** * Gets the hook manager * @@ -161,15 +173,6 @@ public class UltimateTimber extends JavaPlugin { return messageManager; } - /** - * Gets the settings manager - * - * @return The SettingsManager instance - */ - public SettingsManager getSettingsManager() { - return settingsManager; - } - /** * Gets the tree animation manager * diff --git a/src/main/java/com/songoda/ultimatetimber/adapter/VersionAdapter.java b/src/main/java/com/songoda/ultimatetimber/adapter/VersionAdapter.java index 34a7a81..681faf9 100644 --- a/src/main/java/com/songoda/ultimatetimber/adapter/VersionAdapter.java +++ b/src/main/java/com/songoda/ultimatetimber/adapter/VersionAdapter.java @@ -5,6 +5,7 @@ import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; import org.bukkit.inventory.ItemStack; import java.util.Set; @@ -14,11 +15,20 @@ public interface VersionAdapter { VersionAdapterType getVersionAdapterType(); /** - * Loads a Set of TreeDefinitions from the config + * Parses a String into a BlockState * - * @return A Set of loaded TreeDefinitions + * @param blockStateString The String to parse + * @return A BlockState that the given String represents */ - Set loadTreeDefinitions(); + BlockState parseBlockStateFromString(String blockStateString); + + /** + * Parses a String into an ItemStack + * + * @param itemStackString The String to parse + * @return An ItemStack that the given String represents + */ + ItemStack parseItemStackFromString(String itemStackString); /** * Get the items that a tree block should drop when it breaks diff --git a/src/main/java/com/songoda/ultimatetimber/adapter/current/CurrentAdapter.java b/src/main/java/com/songoda/ultimatetimber/adapter/current/CurrentAdapter.java index 585872f..c6dd98e 100644 --- a/src/main/java/com/songoda/ultimatetimber/adapter/current/CurrentAdapter.java +++ b/src/main/java/com/songoda/ultimatetimber/adapter/current/CurrentAdapter.java @@ -7,6 +7,7 @@ import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; import org.bukkit.inventory.ItemStack; import java.util.Set; @@ -19,7 +20,12 @@ public class CurrentAdapter implements VersionAdapter { } @Override - public Set loadTreeDefinitions() { + public BlockState parseBlockStateFromString(String blockStateString) { + return null; + } + + @Override + public ItemStack parseItemStackFromString(String itemStackString) { return null; } diff --git a/src/main/java/com/songoda/ultimatetimber/adapter/legacy/LegacyAdapter.java b/src/main/java/com/songoda/ultimatetimber/adapter/legacy/LegacyAdapter.java index 763364d..d8e7f47 100644 --- a/src/main/java/com/songoda/ultimatetimber/adapter/legacy/LegacyAdapter.java +++ b/src/main/java/com/songoda/ultimatetimber/adapter/legacy/LegacyAdapter.java @@ -7,6 +7,7 @@ import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; import org.bukkit.inventory.ItemStack; import java.util.Set; @@ -19,7 +20,12 @@ public class LegacyAdapter implements VersionAdapter { } @Override - public Set loadTreeDefinitions() { + public BlockState parseBlockStateFromString(String blockStateString) { + return null; + } + + @Override + public ItemStack parseItemStackFromString(String itemStackString) { return null; } diff --git a/src/main/java/com/songoda/ultimatetimber/commands/ReloadCommand.java b/src/main/java/com/songoda/ultimatetimber/commands/ReloadCommand.java deleted file mode 100644 index 4d341bb..0000000 --- a/src/main/java/com/songoda/ultimatetimber/commands/ReloadCommand.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.songoda.ultimatetimber.commands; - -import org.bukkit.command.CommandSender; - -import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.old_code.CustomLoot; -import com.songoda.ultimatetimber.utils.Methods; - -class ReloadCommand { - - static void reloadConfig(CommandSender commandSender) { - UltimateTimber plugin = UltimateTimber.getInstance(); - plugin.reloadConfig(); - plugin.reloadValidWorlds(); - CustomLoot.initializeCustomItems(); - commandSender.sendMessage(Methods.formatText(plugin.getPrefix() + " &7Configuration reloaded")); - } - -} diff --git a/src/main/java/com/songoda/ultimatetimber/commands/ToggleCommand.java b/src/main/java/com/songoda/ultimatetimber/commands/ToggleCommand.java deleted file mode 100644 index 54f876c..0000000 --- a/src/main/java/com/songoda/ultimatetimber/commands/ToggleCommand.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.songoda.ultimatetimber.commands; - - -import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.utils.Methods; -import org.bukkit.entity.Player; - -public class ToggleCommand { - - public static void toggleChopping(Player player) { - if (UltimateTimber.getInstance().toggleChopping(player)) { - player.sendMessage(Methods.formatText(UltimateTimber.getInstance().getPrefix() + " Chopping Mode: &aEnabled")); - } else { - player.sendMessage(Methods.formatText(UltimateTimber.getInstance().getPrefix() + " Chopping Mode: &cDisabled")); - } - } - -} diff --git a/src/main/java/com/songoda/ultimatetimber/manager/ChoppingManager.java b/src/main/java/com/songoda/ultimatetimber/manager/ChoppingManager.java new file mode 100644 index 0000000..73b96de --- /dev/null +++ b/src/main/java/com/songoda/ultimatetimber/manager/ChoppingManager.java @@ -0,0 +1,55 @@ +package com.songoda.ultimatetimber.manager; + +import com.songoda.ultimatetimber.UltimateTimber; +import org.bukkit.entity.Player; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +public class ChoppingManager extends Manager { + + private Set disabledPlayers; + + public ChoppingManager(UltimateTimber ultimateTimber) { + super(ultimateTimber); + this.disabledPlayers = new HashSet<>(); + } + + @Override + public void reload() { + + } + + @Override + public void disable() { + this.disabledPlayers.clear(); + } + + /** + * Toggles a player's chopping status + * + * @param player The player to toggle + * @return True if the player has chopping enabled, or false if they have it disabled + */ + public boolean togglePlayer(Player player) { + if (this.disabledPlayers.contains(player.getUniqueId())) { + this.disabledPlayers.remove(player.getUniqueId()); + return true; + } else { + this.disabledPlayers.add(player.getUniqueId()); + return false; + } + } + + /** + * Checks if a player has chopping enabled + * + * @param player The player to check + * @return True if the player has chopping enabled, or false if they have it disabled + */ + public boolean isChopping(Player player) { + return !this.disabledPlayers.contains(player.getUniqueId()); + } + +} diff --git a/src/main/java/com/songoda/ultimatetimber/commands/CommandHandler.java b/src/main/java/com/songoda/ultimatetimber/manager/CommandManager.java similarity index 54% rename from src/main/java/com/songoda/ultimatetimber/commands/CommandHandler.java rename to src/main/java/com/songoda/ultimatetimber/manager/CommandManager.java index fda1c8a..35e0fb9 100644 --- a/src/main/java/com/songoda/ultimatetimber/commands/CommandHandler.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/CommandManager.java @@ -1,46 +1,67 @@ -package com.songoda.ultimatetimber.commands; +package com.songoda.ultimatetimber.manager; + +import com.songoda.ultimatetimber.UltimateTimber; +import com.songoda.ultimatetimber.utils.Methods; +import org.bukkit.command.*; +import org.bukkit.entity.Player; +import org.bukkit.util.StringUtil; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; +public class CommandManager extends Manager implements CommandExecutor, TabCompleter { -import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.utils.Methods; + public CommandManager(UltimateTimber ultimateTimber) { + super(ultimateTimber); -public class CommandHandler implements CommandExecutor, TabCompleter { + PluginCommand command = ultimateTimber.getCommand("ultimatetimber"); + command.setExecutor(this); + command.setTabCompleter(this); + } + + @Override + public void reload() { + + } + + @Override + public void disable() { + + } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { if (args.length > 0) { if (args[0].equalsIgnoreCase("reload")) { - if (commandSender instanceof Player && !permCheck((Player) commandSender, "ultimatetimber.reload")) { + if (commandSender instanceof Player && !permCheck((Player) commandSender, "ultimatetimber.reload")) return true; - } - ReloadCommand.reloadConfig(commandSender); + + UltimateTimber.getInstance().reload(); + commandSender.sendMessage(Methods.formatText(UltimateTimber.getInstance().getMessageManager().getPrefix() + " &7Configuration reloaded")); return true; } else if (args[0].equalsIgnoreCase("toggle")) { - if (commandSender instanceof Player) { - if (!permCheck((Player) commandSender, "ultimatetimber.toggle")) { - return true; - } - ToggleCommand.toggleChopping((Player) commandSender); + if (!(commandSender instanceof Player)) { + commandSender.sendMessage(Methods.formatText("&cConsole cannot toggle chopping mode!")); return true; } - commandSender.sendMessage(Methods.formatText("&cConsole cannot toggle chopping mode!")); + + if (!permCheck((Player) commandSender, "ultimatetimber.toggle")) + return true; + + if (UltimateTimber.getInstance().getChoppingManager().togglePlayer((Player)commandSender)) { + commandSender.sendMessage(Methods.formatText(UltimateTimber.getInstance().getMessageManager().getPrefix() + " Chopping Mode: &aEnabled")); + } else { + commandSender.sendMessage(Methods.formatText(UltimateTimber.getInstance().getMessageManager().getPrefix() + " Chopping Mode: &cDisabled")); + } + return true; } } commandSender.sendMessage(""); - commandSender.sendMessage(Methods.formatText(UltimateTimber.getInstance().getPrefix() + " &7Version " + UltimateTimber.getInstance().getDescription().getVersion() + " Created with <3 by &5&l&oSongoda")); + commandSender.sendMessage(Methods.formatText(UltimateTimber.getInstance().getMessageManager().getPrefix() + " &7Version " + UltimateTimber.getInstance().getDescription().getVersion() + " Created with <3 by &5&l&oSongoda")); commandSender.sendMessage(Methods.formatText("&8 - &a/ut reload &7 - Reloads the config.")); commandSender.sendMessage(Methods.formatText("&8 - &a/ut toggle &7 - Toggles your chopping mode")); commandSender.sendMessage(""); @@ -59,20 +80,20 @@ public class CommandHandler implements CommandExecutor, TabCompleter { @Override public List onTabComplete(CommandSender commandSender, Command command, String s, String[] args) { List completions = new ArrayList<>(); - - if (args.length == 0 || args.length > 1) + + if (args.length == 0 || args.length > 1) return completions; - + Set possibleCompletions = new HashSet<>(); - - if (commandSender.hasPermission("ultimatetimber.reload")) + + if (commandSender.hasPermission("ultimatetimber.reload")) possibleCompletions.add("reload"); - + if (commandSender.hasPermission("ultimatetimber.toggle") && commandSender instanceof Player) possibleCompletions.add("toggle"); - + StringUtil.copyPartialMatches(args[0], possibleCompletions, completions); - + return completions; } diff --git a/src/main/java/com/songoda/ultimatetimber/manager/ConfigurationManager.java b/src/main/java/com/songoda/ultimatetimber/manager/ConfigurationManager.java index 6975c32..8cff42d 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/ConfigurationManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/ConfigurationManager.java @@ -1,21 +1,140 @@ package com.songoda.ultimatetimber.manager; import com.songoda.ultimatetimber.UltimateTimber; +import com.songoda.ultimatetimber.adapter.VersionAdapterType; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.util.List; public class ConfigurationManager extends Manager { + public enum Setting { + DISABLED_WORLDS, + MAX_LOGS_PER_CHOP, + LEAVES_REQUIRED_FOR_TREE, + REALISTIC_TOOL_DAMAGE, + BREAK_ENTIRE_TREE_BASE, + DESTROY_INITIATED_BLOCK, + ONLY_DETECT_LOGS_UPWARDS, + ONLY_TOPPLE_WHILE_SNEAKING, + ALLOW_CREATIVE_MODE, + REQUIRE_CHOP_PERMISSION, + IGNORE_REQUIRED_TOOLS, + REPLANT_SAPLINGS, + REPLANT_SAPLINGS_COOLDOWN, + FALLING_BLOCKS_REPLANT_SAPLINGS, + FALLING_BLOCKS_REPLANT_SAPLINGS_CHANCE, + FALLING_BLOCKS_DEAL_DAMAGE, + FALLING_BLOCK_DAMAGE, + ADD_ITEMS_TO_INVENTORY, + USE_CUSTOM_SOUNDS, + SCATTER_TREE_BLOCKS_ON_GROUND, + MIX_ALL_TREE_TYPES; + + private Object value = null; + + /** + * Gets the setting as a boolean + * + * @return The setting as a boolean + */ + public boolean getBoolean() { + this.loadValue(); + return (boolean)value; + } + + /** + * Gets the setting as an int + * + * @return The setting as an int + */ + public int getInt() { + this.loadValue(); + return (int)value; + } + + /** + * Gets the setting as a string list + * + * @return The setting as a string list + */ + @SuppressWarnings("unchecked") + public List getStringList() { + this.loadValue(); + return (List)value; + } + + /** + * Resets the cached value + */ + public void reset() { + this.value = null; + } + + /** + * Loads the value from the config and caches it if it isn't set yet + */ + private void loadValue() { + if (this.value == null) + value = UltimateTimber.getInstance().getConfigurationManager().getConfig().get(this.getNameAsKey()); + } + + /** + * Gets the name of this Setting as a config-compatible key + * + * @return The key in the config + */ + private String getNameAsKey() { + return this.name().replace("_", "-").toLowerCase(); + } + } + + private YamlConfiguration configuration; + public ConfigurationManager(UltimateTimber ultimateTimber) { super(ultimateTimber); } @Override public void reload() { + File configFile = new File(ultimateTimber.getDataFolder() + "/config.yml"); + // If an old config still exists, rename it so it doesn't interfere + if (configFile.exists() && ultimateTimber.getConfig().get("server-type") == null) { + File renameConfigTo = new File(ultimateTimber.getDataFolder() + "/config-old.yml"); + configFile.renameTo(renameConfigTo); + configFile = new File(ultimateTimber.getDataFolder() + "/config.yml"); + } + + // Create the new config if it doesn't exist + if (!configFile.exists()) { + boolean isCurrentConfig = ultimateTimber.getVersionAdapter().getVersionAdapterType() == VersionAdapterType.CURRENT; + String newConfigName = "config-" + (isCurrentConfig ? "current" : "legacy") + ".yml"; + File newConfigFile = new File(ultimateTimber.getDataFolder() + "/" + newConfigName); + ultimateTimber.saveResource(newConfigName, false); + newConfigFile.renameTo(configFile); + } + + this.configuration = YamlConfiguration.loadConfiguration(configFile); + + for (Setting setting : Setting.values()) + setting.reset(); } @Override public void disable() { + for (Setting setting : Setting.values()) + setting.reset(); + } + /** + * Gets the config.yml as a YamlConfiguration + * + * @return The YamlConfiguration of the config.yml + */ + public YamlConfiguration getConfig() { + return this.configuration; } } \ No newline at end of file diff --git a/src/main/java/com/songoda/ultimatetimber/manager/DisabledWorldManager.java b/src/main/java/com/songoda/ultimatetimber/manager/DisabledWorldManager.java deleted file mode 100644 index 9d501a1..0000000 --- a/src/main/java/com/songoda/ultimatetimber/manager/DisabledWorldManager.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.songoda.ultimatetimber.manager; - -import com.songoda.ultimatetimber.UltimateTimber; - -import java.util.HashSet; -import java.util.Set; - -public class DisabledWorldManager extends Manager { - - private Set disabledWorldNames; - - public DisabledWorldManager(UltimateTimber ultimateTimber) { - super(ultimateTimber); - this.disabledWorldNames = new HashSet<>(); - } - - @Override - public void reload() { - - } - - @Override - public void disable() { - - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/ultimatetimber/manager/SettingsManager.java b/src/main/java/com/songoda/ultimatetimber/manager/SettingsManager.java deleted file mode 100644 index 07a0764..0000000 --- a/src/main/java/com/songoda/ultimatetimber/manager/SettingsManager.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.songoda.ultimatetimber.manager; - -import com.songoda.ultimatetimber.UltimateTimber; - -public class SettingsManager extends Manager { - - public SettingsManager(UltimateTimber ultimateTimber) { - super(ultimateTimber); - } - - @Override - public void reload() { - - } - - @Override - public void disable() { - - } - -} diff --git a/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java b/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java index a741fe8..0188303 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java @@ -20,7 +20,7 @@ public class TreeDefinitionManager extends Manager { public void reload() { this.treeDefinitions.clear(); - this.treeDefinitions = this.ultimateTimber.getVersionAdapter().loadTreeDefinitions(); + ConfigurationManager configurationManager = ultimateTimber.getConfigurationManager(); } @Override diff --git a/src/main/java/com/songoda/ultimatetimber/old_code/CustomLoot.java b/src/main/java/com/songoda/ultimatetimber/old_code/CustomLoot.java index f428936..5735b18 100644 --- a/src/main/java/com/songoda/ultimatetimber/old_code/CustomLoot.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/CustomLoot.java @@ -1,7 +1,6 @@ package com.songoda.ultimatetimber.old_code; import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.configurations.DefaultConfig; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; diff --git a/src/main/java/com/songoda/ultimatetimber/configurations/DefaultConfig.java b/src/main/java/com/songoda/ultimatetimber/old_code/DefaultConfig.java similarity index 98% rename from src/main/java/com/songoda/ultimatetimber/configurations/DefaultConfig.java rename to src/main/java/com/songoda/ultimatetimber/old_code/DefaultConfig.java index efed38a..cd1847d 100644 --- a/src/main/java/com/songoda/ultimatetimber/configurations/DefaultConfig.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/DefaultConfig.java @@ -1,4 +1,4 @@ -package com.songoda.ultimatetimber.configurations; +package com.songoda.ultimatetimber.old_code; import com.songoda.ultimatetimber.UltimateTimber; import org.bukkit.Bukkit; diff --git a/src/main/java/com/songoda/ultimatetimber/old_code/EventFilter.java b/src/main/java/com/songoda/ultimatetimber/old_code/EventFilter.java index af521f8..cec2899 100644 --- a/src/main/java/com/songoda/ultimatetimber/old_code/EventFilter.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/EventFilter.java @@ -1,7 +1,6 @@ package com.songoda.ultimatetimber.old_code; import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.configurations.DefaultConfig; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; diff --git a/src/main/java/com/songoda/ultimatetimber/old_code/TreeChecker.java b/src/main/java/com/songoda/ultimatetimber/old_code/TreeChecker.java index f86fd93..7d24bfc 100644 --- a/src/main/java/com/songoda/ultimatetimber/old_code/TreeChecker.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/TreeChecker.java @@ -12,7 +12,6 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.util.Vector; import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.configurations.DefaultConfig; import com.songoda.ultimatetimber.utils.LogToLeafConverter; public class TreeChecker { diff --git a/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallAnimation.java b/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallAnimation.java index c9fbe6e..909d6de 100644 --- a/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallAnimation.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallAnimation.java @@ -20,7 +20,6 @@ import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.configurations.DefaultConfig; public class TreeFallAnimation implements Listener, Runnable { diff --git a/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallListener.java b/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallListener.java index cbd2ac1..92215ab 100644 --- a/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallListener.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/TreeFallListener.java @@ -12,7 +12,6 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.configurations.DefaultConfig; import com.songoda.ultimatetimber.events.TreeFallEvent; import com.songoda.ultimatetimber.events.TreeFellEvent; import com.songoda.ultimatetimber.manager.HookManager; diff --git a/src/main/java/com/songoda/ultimatetimber/old_code/TreeReplant.java b/src/main/java/com/songoda/ultimatetimber/old_code/TreeReplant.java index 83817d1..6631e1b 100644 --- a/src/main/java/com/songoda/ultimatetimber/old_code/TreeReplant.java +++ b/src/main/java/com/songoda/ultimatetimber/old_code/TreeReplant.java @@ -13,7 +13,6 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.configurations.DefaultConfig; import com.songoda.ultimatetimber.utils.WoodToLogConverter; class TreeReplant { diff --git a/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java b/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java index 567f39f..d71403b 100644 --- a/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java +++ b/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java @@ -81,8 +81,10 @@ public class TreeBlockSet implements Collection { } @Override + @SuppressWarnings("unchecked") public boolean add(Object o) { - ITreeBlock treeBlock = (ITreeBlock) o; + if (!(o instanceof ITreeBlock)) return false; + ITreeBlock treeBlock = (ITreeBlock) o; switch (treeBlock.getTreeBlockType()) { case LOG: return this.logBlocks.add(treeBlock); @@ -94,7 +96,8 @@ public class TreeBlockSet implements Collection { @Override public boolean remove(Object o) { - ITreeBlock treeBlock = (ITreeBlock) o; + if (!(o instanceof ITreeBlock)) return false; + ITreeBlock treeBlock = (ITreeBlock) o; switch (treeBlock.getTreeBlockType()) { case LOG: return this.logBlocks.remove(treeBlock); diff --git a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationChaos.java b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationChaos.java index 4e7a669..98ff982 100644 --- a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationChaos.java +++ b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationChaos.java @@ -1,12 +1,12 @@ package com.songoda.ultimatetimber.tree.animation; -import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; +import org.bukkit.block.Block; public class TreeAnimationChaos extends TreeAnimation { - public TreeAnimationChaos(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { + public TreeAnimationChaos(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { super(TreeAnimationType.CHAOS, treeBlocks, treeDefinition); } diff --git a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationDisintegrate.java b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationDisintegrate.java index cd93129..0821883 100644 --- a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationDisintegrate.java +++ b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationDisintegrate.java @@ -1,12 +1,12 @@ package com.songoda.ultimatetimber.tree.animation; -import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; +import org.bukkit.block.Block; public class TreeAnimationDisintegrate extends TreeAnimation { - public TreeAnimationDisintegrate(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { + public TreeAnimationDisintegrate(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { super(TreeAnimationType.DISINTIGRATE, treeBlocks, treeDefinition); } diff --git a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationFancy.java b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationFancy.java index f2451f7..3b85a0b 100644 --- a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationFancy.java +++ b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationFancy.java @@ -1,12 +1,12 @@ package com.songoda.ultimatetimber.tree.animation; -import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; +import org.bukkit.block.Block; public class TreeAnimationFancy extends TreeAnimation { - public TreeAnimationFancy(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { + public TreeAnimationFancy(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { super(TreeAnimationType.FANCY, treeBlocks, treeDefinition); } diff --git a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationNone.java b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationNone.java index 89331ba..4d0fd0c 100644 --- a/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationNone.java +++ b/src/main/java/com/songoda/ultimatetimber/tree/animation/TreeAnimationNone.java @@ -1,12 +1,12 @@ package com.songoda.ultimatetimber.tree.animation; -import com.songoda.ultimatetimber.tree.TreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; import com.songoda.ultimatetimber.tree.TreeDefinition; +import org.bukkit.block.Block; public class TreeAnimationNone extends TreeAnimation { - public TreeAnimationNone(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { + public TreeAnimationNone(TreeBlockSet treeBlocks, TreeDefinition treeDefinition) { super(TreeAnimationType.NONE, treeBlocks, treeDefinition); }