/*
 * IFeature.java
 *
 * Copyright (c) 2014 Graham Howden <graham_howden1 at yahoo.co.uk>.
 *
 * This file is part of UltraHardcore.
 *
 * UltraHardcore is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * UltraHardcore is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with UltraHardcore.  If not, see <http ://www.gnu.org/licenses/>.
 */

package com.publicuhc.ultrahardcore.features;

import org.bukkit.event.Listener;

public interface IFeature extends Listener {

    /**
    * Attempt to enable the feature
    * @return bool true if the feature was enabled, false if already enabled or event cancelled
    */
    boolean enableFeature();

    /**
     * Attempt to disable the feature
     * @return bool true if the feature was disabled, false if already disabled or event cancelled
     */
    boolean disableFeature();

    /**
     * @return name of the feature
     */
    String getFeatureID();

    /**
     * Is the feature enabled?
     * @return boolean
     */
    boolean isEnabled();

    /**
     * Get the description of the feature
     * @return String
     */
    String getDescription();
}

@@ -867,16 +867,40 @@
 tener;%0A%0A
+import java.util.List;%0A%0A
 public i
@@ -1581,11 +1581,166 @@
 ption();
+%0A%0A    /**%0A     * @return a list detailing the components of this feature that are enabled/disabled. null if no config%0A     */%0A    List%3CString%3E getStatus();
 %0A%7D%0A

add getStatus method to feature superclass