/* This file is a part of the SteamWar software. Copyright (C) 2020 SteamWar.de-Serverteam This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package de.steamwar.fightsystem.states; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.FightSystem; import org.bukkit.command.CommandExecutor; import org.bukkit.command.PluginCommand; import java.util.Set; public class StateDependentCommand extends StateDependent { private static final CommandExecutor unavailable = (sender, cmd, s, strings) -> { sender.sendMessage(FightSystem.PREFIX + "§cDieser Befehl ist zu diesem Kampfzeitpunkt nicht verfügbar."); return false; }; private final PluginCommand command; private final CommandExecutor executor; public StateDependentCommand(Set mode, Set states, String name, CommandExecutor executor) { super(mode, states); this.executor = executor; this.command = FightSystem.getPlugin().getCommand(name); assert command != null; disable(); register(); } @Override public void enable() { command.setExecutor(executor); } @Override public void disable() { command.setExecutor(unavailable); } }