All source projects
MrUltimateLibrary Source
Standalone source project / 68 files
MrUltimateLibrary is the backbone of all my plugins; it offers features that facilitate plugin creation, maintenance, and updates.
java
MrUltimateLibrary/src/main/java/eu/mrneznamy/mrultimatelibrary/MrUltimateLibrary.java
JAVA · Read-only source
package eu.mrneznamy.mrultimatelibrary;
import eu.mrneznamy.mrultimatelibrary.gui.MrLibGUIManager;
import eu.mrneznamy.mrultimatelibrary.placeholders.MrLibPlaceholderExpansion;
import eu.mrneznamy.mrultimatelibrary.economy.MrLibVaultManager;
import eu.mrneznamy.mrultimatelibrary.holograms.MrLibHologramFacade;
import eu.mrneznamy.mrultimatelibrary.utils.MrLibConsoleSayer;
import eu.mrneznamy.mrultimatelibrary.utils.MrLibUpdateChecker;
import eu.mrneznamy.mrultimatelibrary.utils.MrLibColors;
import java.awt.Color;
import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.CommandSender;
import java.util.List;
import eu.mrneznamy.mrultimatelibrary.commands.MrUltimateLibraryCommand;
public final class MrUltimateLibrary {
public static final String VERSION = "1.0.1";
private static JavaPlugin instance;
public static void init(JavaPlugin plugin) {
instance = plugin;
eu.mrneznamy.mrultimatelibrary.utils.MrLibConsoleSayer.setHostPluginName(plugin.getName());
eu.mrneznamy.mrultimatelibrary.utils.MrLibConfig.init(plugin);
}
public static void start() {
eu.mrneznamy.mrultimatelibrary.stats.MrNeznamyStats.init(instance);
if (instance.getName().equals("MrUltimateLibrary")) {
MrLibRegisterPlugin.register(instance, "MrUltimateLibrary");
}
MrLibVaultManager.getInstance();
MrLibHologramFacade hologramFacade = MrLibHologramFacade.getInstance();
String preferredProvider = eu.mrneznamy.mrultimatelibrary.utils.MrLibConfig.getConfig()
.getString("hologram-provider");
if (preferredProvider != null && !preferredProvider.isEmpty()) {
hologramFacade.setPreferredProvider(preferredProvider);
}
Bukkit.getPluginManager().registerEvents(new MrLibGUIManager(), instance);
try {
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
new MrLibPlaceholderExpansion().register();
MrLibConsoleSayer.MrSay_Success("PlaceholderAPI expansion registered!");
}
} catch (Throwable t) {
try {
reportError("mrultimatelibrary", t, "Failed to register PlaceholderAPI expansion");
} catch (Throwable ignored) {}
}
eu.mrneznamy.mrultimatelibrary.utils.MrLibPluginUpdater.registerPlugin("MrUltimateLibrary",
"MrUltimateLibrary");
instance.getServer().getPluginManager()
.registerEvents(new eu.mrneznamy.mrultimatelibrary.listeners.MrLibUpdateListener(instance), instance);
MrLibConsoleSayer.MrSay_Info("MrUltimateLibrary &7v" + VERSION + " &fby &b_MrNeznamy_ &7initialized.");
MrLibConsoleSayer.MrSay_Success("MrUltimateLibrary enabled!");
try {
MrUltimateLibraryCommand libraryCommand = new MrUltimateLibraryCommand(instance);
org.bukkit.command.PluginCommand command = instance.getCommand("MrUltimateLibrary");
if (command != null) {
command.setExecutor(libraryCommand);
command.setTabCompleter(libraryCommand);
} else {
final org.bukkit.command.SimpleCommandMap commandMap;
java.lang.reflect.Field field = org.bukkit.Bukkit.getServer().getClass().getDeclaredField("commandMap");
field.setAccessible(true);
commandMap = (org.bukkit.command.SimpleCommandMap) field.get(org.bukkit.Bukkit.getServer());
org.bukkit.command.defaults.BukkitCommand dynamicCommand = new org.bukkit.command.defaults.BukkitCommand(
"mrultimatelibrary") {
@Override
public boolean execute(CommandSender sender, String label, String[] args) {
return libraryCommand.onCommand(sender, this, label, args);
}
@Override
public java.util.List<String> tabComplete(CommandSender sender, String alias, String[] args) {
return libraryCommand.onTabComplete(sender, this, alias, args);
}
};
dynamicCommand.setDescription("Main command for MrUltimateLibrary");
dynamicCommand.setPermission("MrUltimateLibrary.admin");
dynamicCommand.setAliases(java.util.Arrays.asList("mrlib", "mrlibrary", "mrlibcore"));
commandMap.register("mrultimatelibrary", dynamicCommand);
}
} catch (Throwable ignored) {
}
eu.mrneznamy.mrultimatelibrary.utils.MrLibStartupPrinter.print(instance);
}
public static void stop() {
eu.mrneznamy.mrultimatelibrary.stats.MrNeznamyStats.shutdown();
try {
MrLibHologramFacade hologramManager = MrLibHologramFacade.getInstance();
if (hologramManager != null) {
hologramManager.cleanupAllHolograms();
}
int removed = 0;
for (org.bukkit.World world : org.bukkit.Bukkit.getWorlds()) {
for (org.bukkit.entity.Entity entity : world.getEntities()) {
if (entity instanceof org.bukkit.entity.TextDisplay) {
if (entity.hasMetadata("MrUltimateLibrary-Hologram")) {
entity.remove();
removed++;
}
}
}
}
if (removed > 0) {
MrLibConsoleSayer.MrSay_Info("Removed " + removed + " TextDisplay entities on shutdown");
}
} catch (Throwable e) {
instance.getLogger().warning("Error cleaning up holograms: " + e.getMessage());
}
MrLibConsoleSayer.MrSay_Info("MrUltimateLibrary disabled!");
}
/**
* Reports an error to MrNeznamy analytics.
*
* @param pluginSlug The slug of the plugin where the error occurred.
* @param throwable The exception that occurred.
* @param message Optional additional message or context.
*/
public static void reportError(String pluginSlug, Throwable throwable, String message) {
if (getInstance() != null && !getInstance().getConfig().getBoolean("enable-error-reporting", true)) {
return;
}
eu.mrneznamy.mrultimatelibrary.stats.MrNeznamyStats.reportError(pluginSlug, throwable, message);
}
public static void reportError(String pluginSlug, Throwable throwable) {
reportError(pluginSlug, throwable, throwable != null ? throwable.getMessage() : "Unknown error");
}
public static JavaPlugin getInstance() {
return instance;
}
}
171 linesGNU GENERAL PUBLIC LICENSE · Version 3, 29 June 2007 · UTF-8 · Read only