001/* 002 * PlotSquared, a land and world management plugin for Minecraft. 003 * Copyright (C) IntellectualSites <https://intellectualsites.com> 004 * Copyright (C) IntellectualSites team and contributors 005 * 006 * This program is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * This program is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU General Public License for more details. 015 * 016 * You should have received a copy of the GNU General Public License 017 * along with this program. If not, see <https://www.gnu.org/licenses/>. 018 */ 019package com.plotsquared.core.command; 020 021import com.plotsquared.core.configuration.caption.Caption; 022import com.plotsquared.core.configuration.caption.StaticCaption; 023import com.plotsquared.core.configuration.caption.TranslatableCaption; 024import org.checkerframework.checker.nullness.qual.NonNull; 025 026public enum RequiredType { 027 CONSOLE(TranslatableCaption.of("console.not_console")), 028 PLAYER(TranslatableCaption.of("console.is_console")), 029 NONE(StaticCaption.of("Something went wrong: RequiredType=NONE")); // this caption should never be sent 030 031 private final Caption caption; 032 033 RequiredType(Caption caption) { 034 this.caption = caption; 035 } 036 037 public boolean allows(CommandCaller player) { 038 if (this == RequiredType.NONE) { 039 return true; 040 } 041 return this == player.getSuperCaller(); 042 } 043 044 public @NonNull Caption getErrorMessage() { 045 return this.caption; 046 } 047}