package tc.oc.commons.bukkit.chat; import java.util.Objects; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TranslatableComponent; import org.bukkit.command.CommandSender; import tc.oc.commons.core.chat.Components; import tc.oc.commons.core.chat.ImmutableComponent; import tc.oc.commons.core.util.Utils; import static com.google.common.base.Preconditions.checkNotNull; public class WarningComponent extends ImmutableComponent implements RenderableComponent { private final BaseComponent content; public WarningComponent(BaseComponent content) { this.content = checkNotNull(content); } public WarningComponent(String translate, Object... with) { this(new TranslatableComponent(translate, with)); } public BaseComponent content() { return content; } @Override public BaseComponent duplicate() { return new WarningComponent(content.duplicate()); } @Override public BaseComponent render(ComponentRenderContext context, CommandSender viewer) { return Components.warning(context.render(content, viewer)); } @Override protected boolean equals(BaseComponent obj) { return Utils.equals(WarningComponent.class, this, obj, that -> super.equals(that) && content.equals(that.content()) ); } @Override public int hashCode() { return Objects.hash(super.hashCode(), content); } }