All checks were successful
KnarCraft/PlaceholderSigns/pipeline/head This commit looks good
123 lines
4.5 KiB
Java
123 lines
4.5 KiB
Java
package net.knarcraft.placeholdersigns;
|
|
|
|
import net.knarcraft.knarlib.formatting.StringFormatter;
|
|
import net.knarcraft.knarlib.formatting.Translator;
|
|
import net.knarcraft.knarlib.property.ColorConversion;
|
|
import net.knarcraft.placeholdersigns.command.EditSignCommand;
|
|
import net.knarcraft.placeholdersigns.command.ViewPlaceholderSignCommand;
|
|
import net.knarcraft.placeholdersigns.command.ViewSignCommand;
|
|
import net.knarcraft.placeholdersigns.config.PlaceholderSignMessage;
|
|
import net.knarcraft.placeholdersigns.handler.PlaceholderSignHandler;
|
|
import net.knarcraft.placeholdersigns.handler.PlaceholderSignRequestHandler;
|
|
import net.knarcraft.placeholdersigns.listener.SignBreakListener;
|
|
import net.knarcraft.placeholdersigns.listener.SignClickListener;
|
|
import net.knarcraft.placeholdersigns.listener.SignTextListener;
|
|
import net.knarcraft.placeholdersigns.runnable.SignUpdate;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.command.CommandExecutor;
|
|
import org.bukkit.command.PluginCommand;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import java.util.logging.Level;
|
|
|
|
/**
|
|
* This plugin's main class
|
|
*/
|
|
public final class PlaceholderSigns extends JavaPlugin {
|
|
|
|
private static PlaceholderSigns instance;
|
|
private PlaceholderSignHandler signHandler;
|
|
private PlaceholderSignRequestHandler requestHandler;
|
|
private StringFormatter stringFormatter;
|
|
|
|
/**
|
|
* Gets an instance of this plugin
|
|
*
|
|
* @return <p>A plugin instance</p>
|
|
*/
|
|
@NotNull
|
|
public static PlaceholderSigns getInstance() {
|
|
return instance;
|
|
}
|
|
|
|
/**
|
|
* Gets this instance's placeholder sign handler
|
|
*
|
|
* @return <p>The sign handler</p>
|
|
*/
|
|
@NotNull
|
|
public PlaceholderSignHandler getSignHandler() {
|
|
return this.signHandler;
|
|
}
|
|
|
|
@NotNull
|
|
public PlaceholderSignRequestHandler getRequestHandler() {
|
|
return this.requestHandler;
|
|
}
|
|
|
|
@NotNull
|
|
public StringFormatter getStringFormatter() {
|
|
return this.stringFormatter;
|
|
}
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
instance = this;
|
|
getConfig().options().copyDefaults(true);
|
|
saveConfig();
|
|
Translator translator = new Translator();
|
|
translator.registerMessageCategory(PlaceholderSignMessage.SUCCESS_CLICK_SIGN_TO_EDIT);
|
|
translator.setColorConversion(ColorConversion.RGB);
|
|
translator.loadLanguages(this.getDataFolder(), "en", getConfig().getString("language", "en"));
|
|
this.stringFormatter = new StringFormatter(this.getDescription().getName(), translator);
|
|
this.stringFormatter.setColorConversion(ColorConversion.RGB);
|
|
this.stringFormatter.setNamePrefix("#A5682A[&r&l");
|
|
this.stringFormatter.setNameSuffix("&r#A5682A]");
|
|
|
|
this.signHandler = new PlaceholderSignHandler();
|
|
this.signHandler.load();
|
|
this.requestHandler = new PlaceholderSignRequestHandler();
|
|
|
|
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
|
|
getLogger().log(Level.WARNING, "Could not find PlaceholderAPI! This plugin is required.");
|
|
Bukkit.getPluginManager().disablePlugin(this);
|
|
return;
|
|
}
|
|
|
|
// Update signs' placeholders every second
|
|
Bukkit.getScheduler().runTaskTimer(this, new SignUpdate(this.signHandler), 20 * 10, 20 * 5);
|
|
|
|
Bukkit.getPluginManager().registerEvents(new SignBreakListener(), this);
|
|
Bukkit.getPluginManager().registerEvents(new SignTextListener(), this);
|
|
Bukkit.getPluginManager().registerEvents(new SignClickListener(), this);
|
|
|
|
registerCommand("editSign", new EditSignCommand());
|
|
registerCommand("viewSign", new ViewSignCommand(false));
|
|
registerCommand("viewSignRaw", new ViewSignCommand(true));
|
|
registerCommand("viewPlaceholderSign", new ViewPlaceholderSignCommand(false));
|
|
registerCommand("viewPlaceholderSignRaw", new ViewPlaceholderSignCommand(true));
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
// Plugin shutdown logic
|
|
}
|
|
|
|
/**
|
|
* Registers a command executor
|
|
*
|
|
* @param commandName <p>The name of the command</p>
|
|
* @param executor <p>The command's executor</p>
|
|
*/
|
|
private void registerCommand(@NotNull String commandName, @NotNull CommandExecutor executor) {
|
|
PluginCommand command = Bukkit.getPluginCommand(commandName);
|
|
if (command != null) {
|
|
command.setExecutor(executor);
|
|
} else {
|
|
getLogger().log(Level.SEVERE, "Unable to register command " + commandName);
|
|
}
|
|
}
|
|
|
|
}
|