2019-08-04 23:49:57 +02:00
|
|
|
package com.songoda.epicenchants;
|
|
|
|
|
2019-12-28 22:00:25 +01:00
|
|
|
import com.songoda.core.SongodaCore;
|
|
|
|
import com.songoda.core.SongodaPlugin;
|
2020-07-22 18:32:31 +02:00
|
|
|
import com.songoda.core.commands.CommandManager;
|
2019-12-28 22:00:25 +01:00
|
|
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
|
|
|
import com.songoda.core.configuration.Config;
|
2020-01-15 23:58:15 +01:00
|
|
|
import com.songoda.core.gui.GuiManager;
|
2019-12-28 22:00:25 +01:00
|
|
|
import com.songoda.core.hooks.EconomyManager;
|
2021-04-13 09:09:47 +02:00
|
|
|
import com.songoda.epicenchants.commands.*;
|
2019-08-04 23:49:57 +02:00
|
|
|
import com.songoda.epicenchants.listeners.ArmorListener;
|
|
|
|
import com.songoda.epicenchants.listeners.EntityListener;
|
2020-08-20 10:02:27 +02:00
|
|
|
import com.songoda.epicenchants.listeners.HeldItemListener;
|
2019-08-04 23:49:57 +02:00
|
|
|
import com.songoda.epicenchants.listeners.PlayerListener;
|
|
|
|
import com.songoda.epicenchants.listeners.item.BlackScrollListener;
|
|
|
|
import com.songoda.epicenchants.listeners.item.BookListener;
|
|
|
|
import com.songoda.epicenchants.listeners.item.DustListener;
|
|
|
|
import com.songoda.epicenchants.listeners.item.WhiteScrollListener;
|
|
|
|
import com.songoda.epicenchants.managers.*;
|
|
|
|
import com.songoda.epicenchants.objects.Enchant;
|
|
|
|
import com.songoda.epicenchants.utils.EnchantUtils;
|
|
|
|
import com.songoda.epicenchants.utils.SpecialItems;
|
|
|
|
import com.songoda.epicenchants.utils.objects.FastInv;
|
2020-01-15 23:58:15 +01:00
|
|
|
import com.songoda.epicenchants.utils.settings.Settings;
|
2019-08-04 23:49:57 +02:00
|
|
|
import com.songoda.epicenchants.utils.single.ItemGroup;
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.plugin.PluginManager;
|
|
|
|
|
2019-12-28 22:00:25 +01:00
|
|
|
import java.util.List;
|
2019-08-04 23:49:57 +02:00
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
2019-12-28 22:00:25 +01:00
|
|
|
public class EpicEnchants extends SongodaPlugin {
|
2019-08-04 23:49:57 +02:00
|
|
|
|
|
|
|
private static EpicEnchants INSTANCE;
|
|
|
|
|
2020-01-15 23:58:15 +01:00
|
|
|
private final GuiManager guiManager = new GuiManager(this);
|
2019-08-04 23:49:57 +02:00
|
|
|
private EnchantManager enchantManager;
|
|
|
|
private InfoManager infoManager;
|
|
|
|
private GroupManager groupManager;
|
|
|
|
private FileManager fileManager;
|
|
|
|
private HookManager hookManager;
|
2019-08-05 04:24:48 +02:00
|
|
|
private CommandManager commandManager;
|
2019-08-04 23:49:57 +02:00
|
|
|
|
|
|
|
private SpecialItems specialItems;
|
|
|
|
private EnchantUtils enchantUtils;
|
|
|
|
private ItemGroup itemGroup;
|
|
|
|
|
|
|
|
public static EpicEnchants getInstance() {
|
|
|
|
return INSTANCE;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2019-12-28 22:00:25 +01:00
|
|
|
public void onPluginLoad() {
|
2019-08-04 23:49:57 +02:00
|
|
|
INSTANCE = this;
|
2019-12-28 22:00:25 +01:00
|
|
|
}
|
2019-08-04 23:49:57 +02:00
|
|
|
|
2019-12-28 22:00:25 +01:00
|
|
|
@Override
|
|
|
|
public void onPluginEnable() {
|
|
|
|
// Run Songoda Updater
|
|
|
|
SongodaCore.registerPlugin(this, 67, CompatibleMaterial.DIAMOND_SWORD);
|
2019-08-04 23:49:57 +02:00
|
|
|
|
2020-07-22 18:31:16 +02:00
|
|
|
// setup commands
|
|
|
|
this.commandManager = new com.songoda.core.commands.CommandManager(this);
|
|
|
|
this.commandManager.addMainCommand("ee")
|
|
|
|
.addSubCommand(new CommandReload(this))
|
|
|
|
.addSubCommand(new CommandAlchemist(this))
|
|
|
|
.addSubCommand(new CommandApply(this))
|
|
|
|
.addSubCommand(new CommandEnchanter(this))
|
|
|
|
.addSubCommand(new CommandGiveBook(this))
|
|
|
|
.addSubCommand(new CommandGiveItemDust(this))
|
|
|
|
.addSubCommand(new CommandGiveRandomBook(this))
|
|
|
|
.addSubCommand(new CommandGiveScroll(this))
|
|
|
|
.addSubCommand(new CommandList(this))
|
|
|
|
.addSubCommand(new CommandSettings(this))
|
|
|
|
.addSubCommand(new CommandTinkerer(this));
|
|
|
|
|
2020-01-15 23:58:15 +01:00
|
|
|
EconomyManager.load();
|
|
|
|
|
|
|
|
// Setup Config
|
|
|
|
Settings.setupConfig();
|
|
|
|
this.setLocale(Settings.LANGUGE_MODE.getString(), false);
|
2019-08-04 23:49:57 +02:00
|
|
|
|
2020-01-15 23:58:15 +01:00
|
|
|
EconomyManager.getManager().setPreferredHook(Settings.ECONOMY_PLUGIN.getString());
|
2019-08-04 23:49:57 +02:00
|
|
|
|
|
|
|
preload();
|
|
|
|
|
|
|
|
this.groupManager = new GroupManager(this);
|
|
|
|
this.enchantManager = new EnchantManager(this);
|
|
|
|
this.enchantUtils = new EnchantUtils(this);
|
|
|
|
this.infoManager = new InfoManager(this);
|
|
|
|
this.specialItems = new SpecialItems(this);
|
|
|
|
this.commandManager = new CommandManager(this);
|
|
|
|
this.hookManager = new HookManager();
|
2020-07-22 18:32:31 +02:00
|
|
|
this.itemGroup = new ItemGroup();
|
2019-08-04 23:49:57 +02:00
|
|
|
|
|
|
|
groupManager.loadGroups();
|
|
|
|
enchantManager.loadEnchants();
|
|
|
|
infoManager.loadMenus();
|
|
|
|
hookManager.setup();
|
|
|
|
|
|
|
|
// Listeners
|
2020-01-15 23:58:15 +01:00
|
|
|
guiManager.init();
|
|
|
|
PluginManager pluginManager = Bukkit.getPluginManager();
|
2019-08-04 23:49:57 +02:00
|
|
|
pluginManager.registerEvents(new BookListener(this), this);
|
|
|
|
pluginManager.registerEvents(new ArmorListener(), this);
|
2020-08-20 10:02:27 +02:00
|
|
|
pluginManager.registerEvents(new HeldItemListener(), this);
|
2019-08-04 23:49:57 +02:00
|
|
|
pluginManager.registerEvents(new PlayerListener(this), this);
|
|
|
|
pluginManager.registerEvents(new EntityListener(this), this);
|
|
|
|
pluginManager.registerEvents(new WhiteScrollListener(this), this);
|
|
|
|
pluginManager.registerEvents(new BlackScrollListener(this), this);
|
|
|
|
pluginManager.registerEvents(new DustListener(this), this);
|
|
|
|
|
|
|
|
if (!enchantManager.getValues().isEmpty()) {
|
|
|
|
getLogger().info("Successfully loaded enchants: " + enchantManager.getValues().stream().map(Enchant::getIdentifier).collect(Collectors.joining(", ")));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void preload() {
|
|
|
|
FastInv.init(this);
|
|
|
|
this.fileManager = new FileManager(this);
|
|
|
|
fileManager.loadFiles();
|
|
|
|
}
|
|
|
|
|
2020-09-30 23:05:18 +02:00
|
|
|
@Override
|
|
|
|
public void onDataLoad() {
|
|
|
|
}
|
|
|
|
|
2019-08-04 23:49:57 +02:00
|
|
|
@Override
|
2019-12-28 22:00:25 +01:00
|
|
|
public void onPluginDisable() {
|
2019-08-04 23:49:57 +02:00
|
|
|
}
|
|
|
|
|
2019-12-28 22:00:25 +01:00
|
|
|
@Override
|
|
|
|
public void onConfigReload() {
|
2019-08-04 23:49:57 +02:00
|
|
|
fileManager.clear();
|
|
|
|
fileManager.loadFiles();
|
|
|
|
|
|
|
|
groupManager.clear();
|
|
|
|
groupManager.loadGroups();
|
|
|
|
|
|
|
|
enchantManager.clear();
|
|
|
|
enchantManager.loadEnchants();
|
|
|
|
|
|
|
|
infoManager.clear();
|
|
|
|
infoManager.loadMenus();
|
|
|
|
|
2019-12-28 22:00:25 +01:00
|
|
|
this.setLocale(getConfig().getString("System.Language Mode"), true);
|
2019-08-04 23:49:57 +02:00
|
|
|
this.locale.reloadMessages();
|
|
|
|
}
|
|
|
|
|
2020-01-15 23:58:15 +01:00
|
|
|
@Override
|
|
|
|
public List<Config> getExtraConfig() {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2019-08-04 23:49:57 +02:00
|
|
|
public EnchantManager getEnchantManager() {
|
|
|
|
return this.enchantManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public InfoManager getInfoManager() {
|
|
|
|
return this.infoManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public GroupManager getGroupManager() {
|
|
|
|
return this.groupManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public FileManager getFileManager() {
|
|
|
|
return this.fileManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public HookManager getHookManager() {
|
|
|
|
return this.hookManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public SpecialItems getSpecialItems() {
|
|
|
|
return this.specialItems;
|
|
|
|
}
|
|
|
|
|
|
|
|
public EnchantUtils getEnchantUtils() {
|
|
|
|
return this.enchantUtils;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ItemGroup getItemGroup() {
|
|
|
|
return this.itemGroup;
|
|
|
|
}
|
|
|
|
|
2019-08-05 04:24:48 +02:00
|
|
|
public CommandManager getCommandManager() {
|
|
|
|
return commandManager;
|
|
|
|
}
|
|
|
|
|
2020-01-15 23:58:15 +01:00
|
|
|
public GuiManager getGuiManager() {
|
|
|
|
return guiManager;
|
2019-08-05 04:24:48 +02:00
|
|
|
}
|
2019-08-04 23:49:57 +02:00
|
|
|
}
|