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.exception; 020 021import com.plotsquared.core.configuration.caption.Caption; 022import com.plotsquared.core.configuration.caption.LocaleHolder; 023 024/** 025 * Internal use only. Used to allow adventure captions to be used in an exception 026 * 027 * @since 7.5.7 028 */ 029public final class PlotSquaredException extends RuntimeException { 030 031 private final Caption caption; 032 033 /** 034 * Create a new instance with the given caption 035 * 036 * @param caption caption 037 */ 038 public PlotSquaredException(Caption caption) { 039 this.caption = caption; 040 } 041 042 /** 043 * Create a new instance with the given caption and cause 044 * 045 * @param caption caption 046 * @param cause cause 047 */ 048 public PlotSquaredException(Caption caption, Exception cause) { 049 super(cause); 050 this.caption = caption; 051 } 052 053 @Override 054 public String getMessage() { 055 return caption.getComponent(LocaleHolder.console()); 056 } 057 058 public Caption getCaption() { 059 return caption; 060 } 061 062}