9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-24 09:29:19 +00:00
Files
Custom-Crops/src/main/java/net/momirealms/customcrops/CustomCrops.java
2022-10-06 20:03:25 +08:00

120 lines
4.3 KiB
Java

/*
* Copyright (C) <2022> <XiaoMoMi>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package net.momirealms.customcrops;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.momirealms.customcrops.commands.PluginCommand;
import net.momirealms.customcrops.config.ConfigUtil;
import net.momirealms.customcrops.config.MainConfig;
import net.momirealms.customcrops.helper.LibraryLoader;
import net.momirealms.customcrops.integrations.papi.PlaceholderManager;
import net.momirealms.customcrops.managers.CropManager;
import net.momirealms.customcrops.utils.AdventureUtil;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.Objects;
public final class CustomCrops extends JavaPlugin {
public static BukkitAudiences adventure;
public static CustomCrops plugin;
public static ProtocolManager protocolManager;
private PlaceholderManager placeholderManager;
private CropManager cropManager;
private PluginCommand pluginCommand;
@Override
public void onLoad(){
plugin = this;
LibraryLoader.load("dev.dejvokep","boosted-yaml","1.3","https://repo.maven.apache.org/maven2/");
LibraryLoader.load("commons-io","commons-io","2.11.0","https://repo.maven.apache.org/maven2/");
}
@Override
public void onEnable() {
adventure = BukkitAudiences.create(plugin);
protocolManager = ProtocolLibrary.getProtocolManager();
AdventureUtil.consoleMessage("[CustomCrops] Running on <white>" + Bukkit.getVersion());
if (Bukkit.getPluginManager().getPlugin("ItemsAdder") != null) {
MainConfig.customPlugin = "itemsadder";
MainConfig.OraxenHook = false;
AdventureUtil.consoleMessage("[CustomCrops] Custom Item Plugin Platform: <#BA55D3><u>ItemsAdder");
}
else if (Bukkit.getPluginManager().getPlugin("Oraxen") != null) {
MainConfig.customPlugin = "oraxen";
MainConfig.OraxenHook = true;
AdventureUtil.consoleMessage("[CustomCrops] Custom Item Plugin Platform: <#6495ED><u>Oraxen");
}
else {
AdventureUtil.consoleMessage("<red>[CustomCrops] You need either ItemsAdder or Oraxen as CustomCrops' dependency");
Bukkit.getPluginManager().disablePlugin(CustomCrops.plugin);
return;
}
ConfigUtil.reloadConfigs();
if (MainConfig.cropMode) AdventureUtil.consoleMessage("[CustomCrops] Crop Mode: Tripwire");
else AdventureUtil.consoleMessage("[CustomCrops] Crop Mode: ItemFrame");
this.pluginCommand = new PluginCommand();
Objects.requireNonNull(Bukkit.getPluginCommand("customcrops")).setExecutor(pluginCommand);
Objects.requireNonNull(Bukkit.getPluginCommand("customcrops")).setTabCompleter(pluginCommand);
this.cropManager = new CropManager();
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
this.placeholderManager = new PlaceholderManager();
}
AdventureUtil.consoleMessage("[CustomCrops] Plugin Enabled!");
new Metrics(this, 16593);
}
@Override
public void onDisable() {
if (adventure != null) {
adventure.close();
}
if (this.placeholderManager != null) {
this.placeholderManager.unload();
}
if (this.cropManager != null) {
this.cropManager.unload();
}
}
public PlaceholderManager getPlaceholderManager() {
return placeholderManager;
}
public boolean hasPapi() {
return placeholderManager != null;
}
public CropManager getCropManager() {
return cropManager;
}
}