001/* 002 * This file is part of Baritone. 003 * 004 * Baritone is free software: you can redistribute it and/or modify 005 * it under the terms of the GNU Lesser General Public License as published by 006 * the Free Software Foundation, either version 3 of the License, or 007 * (at your option) any later version. 008 * 009 * Baritone is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU Lesser General Public License for more details. 013 * 014 * You should have received a copy of the GNU Lesser General Public License 015 * along with Baritone. If not, see <https://www.gnu.org/licenses/>. 016 */ 017 018package baritone.api; 019 020import baritone.api.utils.SettingsUtil; 021 022/** 023 * Exposes the {@link IBaritoneProvider} instance and the {@link Settings} instance for API usage. 024 * 025 * @author Brady 026 * @since 9/23/2018 027 */ 028public final class BaritoneAPI { 029 030 private static final IBaritoneProvider provider; 031 private static final Settings settings; 032 033 static { 034 settings = new Settings(); 035 SettingsUtil.readAndApply(settings, SettingsUtil.SETTINGS_DEFAULT_NAME); 036 037 try { 038 provider = (IBaritoneProvider) Class.forName("baritone.BaritoneProvider").newInstance(); 039 } catch (ReflectiveOperationException ex) { 040 throw new RuntimeException(ex); 041 } 042 } 043 044 public static IBaritoneProvider getProvider() { 045 return BaritoneAPI.provider; 046 } 047 048 public static Settings getSettings() { 049 return BaritoneAPI.settings; 050 } 051}