mirror of
https://github.com/filoghost/HolographicDisplays.git
synced 2024-10-03 01:57:34 +02:00
Remove duplicate (re)loading code
This commit is contained in:
parent
0ff3b28fdd
commit
c17de21313
@ -15,8 +15,12 @@ import me.filoghost.holographicdisplays.api.line.ItemLine;
|
|||||||
import me.filoghost.holographicdisplays.bridge.bungeecord.BungeeServerTracker;
|
import me.filoghost.holographicdisplays.bridge.bungeecord.BungeeServerTracker;
|
||||||
import me.filoghost.holographicdisplays.bridge.protocollib.ProtocolLibHook;
|
import me.filoghost.holographicdisplays.bridge.protocollib.ProtocolLibHook;
|
||||||
import me.filoghost.holographicdisplays.commands.HologramCommandManager;
|
import me.filoghost.holographicdisplays.commands.HologramCommandManager;
|
||||||
|
import me.filoghost.holographicdisplays.commands.Messages;
|
||||||
|
import me.filoghost.holographicdisplays.common.Utils;
|
||||||
import me.filoghost.holographicdisplays.disk.ConfigManager;
|
import me.filoghost.holographicdisplays.disk.ConfigManager;
|
||||||
import me.filoghost.holographicdisplays.disk.Configuration;
|
import me.filoghost.holographicdisplays.disk.Configuration;
|
||||||
|
import me.filoghost.holographicdisplays.disk.HologramConfig;
|
||||||
|
import me.filoghost.holographicdisplays.disk.HologramLoadException;
|
||||||
import me.filoghost.holographicdisplays.disk.upgrade.LegacySymbolsUpgrader;
|
import me.filoghost.holographicdisplays.disk.upgrade.LegacySymbolsUpgrader;
|
||||||
import me.filoghost.holographicdisplays.listener.ChunkListener;
|
import me.filoghost.holographicdisplays.listener.ChunkListener;
|
||||||
import me.filoghost.holographicdisplays.listener.MainListener;
|
import me.filoghost.holographicdisplays.listener.MainListener;
|
||||||
@ -27,17 +31,18 @@ import me.filoghost.holographicdisplays.nms.interfaces.NMSManager;
|
|||||||
import me.filoghost.holographicdisplays.nms.interfaces.PacketController;
|
import me.filoghost.holographicdisplays.nms.interfaces.PacketController;
|
||||||
import me.filoghost.holographicdisplays.object.APIHologram;
|
import me.filoghost.holographicdisplays.object.APIHologram;
|
||||||
import me.filoghost.holographicdisplays.object.APIHologramManager;
|
import me.filoghost.holographicdisplays.object.APIHologramManager;
|
||||||
|
import me.filoghost.holographicdisplays.object.BaseHologram;
|
||||||
import me.filoghost.holographicdisplays.object.InternalHologram;
|
import me.filoghost.holographicdisplays.object.InternalHologram;
|
||||||
import me.filoghost.holographicdisplays.object.InternalHologramManager;
|
import me.filoghost.holographicdisplays.object.InternalHologramManager;
|
||||||
import me.filoghost.holographicdisplays.placeholder.AnimationsRegister;
|
import me.filoghost.holographicdisplays.placeholder.AnimationsRegister;
|
||||||
import me.filoghost.holographicdisplays.placeholder.PlaceholdersManager;
|
import me.filoghost.holographicdisplays.placeholder.PlaceholdersManager;
|
||||||
import me.filoghost.holographicdisplays.task.BungeeCleanupTask;
|
import me.filoghost.holographicdisplays.task.BungeeCleanupTask;
|
||||||
import me.filoghost.holographicdisplays.task.StartupLoadHologramsTask;
|
|
||||||
import me.filoghost.holographicdisplays.task.WorldPlayerCounterTask;
|
import me.filoghost.holographicdisplays.task.WorldPlayerCounterTask;
|
||||||
import me.filoghost.holographicdisplays.util.NMSVersion;
|
import me.filoghost.holographicdisplays.util.NMSVersion;
|
||||||
import org.bstats.bukkit.MetricsLite;
|
import org.bstats.bukkit.MetricsLite;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
@ -45,6 +50,7 @@ public class HolographicDisplays extends FCommonsPlugin implements PacketControl
|
|||||||
|
|
||||||
private static HolographicDisplays instance;
|
private static HolographicDisplays instance;
|
||||||
|
|
||||||
|
private ConfigManager configManager;
|
||||||
private InternalHologramManager internalHologramManager;
|
private InternalHologramManager internalHologramManager;
|
||||||
private APIHologramManager apiHologramManager;
|
private APIHologramManager apiHologramManager;
|
||||||
|
|
||||||
@ -88,9 +94,9 @@ public class HolographicDisplays extends FCommonsPlugin implements PacketControl
|
|||||||
throw new PluginEnableException(e, "Couldn't initialize the NMS manager.");
|
throw new PluginEnableException(e, "Couldn't initialize the NMS manager.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configManager = new ConfigManager(getDataFolder().toPath());
|
||||||
internalHologramManager = new InternalHologramManager(nmsManager);
|
internalHologramManager = new InternalHologramManager(nmsManager);
|
||||||
apiHologramManager = new APIHologramManager(nmsManager);
|
apiHologramManager = new APIHologramManager(nmsManager);
|
||||||
ConfigManager configManager = new ConfigManager(getDataFolder().toPath());
|
|
||||||
|
|
||||||
// Run only once at startup, before anything else.
|
// Run only once at startup, before anything else.
|
||||||
try {
|
try {
|
||||||
@ -99,28 +105,12 @@ public class HolographicDisplays extends FCommonsPlugin implements PacketControl
|
|||||||
Log.warning("Couldn't convert symbols file", e);
|
Log.warning("Couldn't convert symbols file", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load placeholders.yml.
|
load(null, true);
|
||||||
configManager.reloadCustomPlaceholders();
|
|
||||||
|
|
||||||
// Load the configuration.
|
|
||||||
configManager.reloadMainConfig();
|
|
||||||
|
|
||||||
// ProtocolLib check.
|
|
||||||
ProtocolLibHook.setup(this, nmsManager);
|
ProtocolLibHook.setup(this, nmsManager);
|
||||||
|
|
||||||
// Load animation files and the placeholder manager.
|
|
||||||
PlaceholdersManager.load(this);
|
|
||||||
try {
|
|
||||||
AnimationsRegister.loadAnimations(configManager);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.warning("Failed to load animation files!", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize other static classes.
|
|
||||||
configManager.reloadHologramDatabase();
|
|
||||||
BungeeServerTracker.restartTask(Configuration.bungeeRefreshSeconds);
|
|
||||||
|
|
||||||
// Start repeating tasks.
|
// Start repeating tasks.
|
||||||
|
PlaceholdersManager.startRefreshTask(this);
|
||||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new BungeeCleanupTask(), 5 * 60 * 20, 5 * 60 * 20);
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new BungeeCleanupTask(), 5 * 60 * 20, 5 * 60 * 20);
|
||||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new WorldPlayerCounterTask(), 0L, 3 * 20);
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new WorldPlayerCounterTask(), 0L, 3 * 20);
|
||||||
|
|
||||||
@ -141,13 +131,53 @@ public class HolographicDisplays extends FCommonsPlugin implements PacketControl
|
|||||||
new MetricsLite(this, pluginID);
|
new MetricsLite(this, pluginID);
|
||||||
|
|
||||||
updateNotificationListener.runAsyncUpdateCheck();
|
updateNotificationListener.runAsyncUpdateCheck();
|
||||||
|
|
||||||
// Holograms are loaded later, when the worlds are ready.
|
|
||||||
Bukkit.getScheduler().runTask(this, new StartupLoadHologramsTask(
|
|
||||||
internalHologramManager,
|
|
||||||
configManager.getHologramDatabase().getHolograms()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void load(CommandSender sender, boolean deferHologramLoad) {
|
||||||
|
configManager.reloadCustomPlaceholders();
|
||||||
|
configManager.reloadMainConfig();
|
||||||
|
configManager.reloadHologramDatabase();
|
||||||
|
try {
|
||||||
|
AnimationsRegister.loadAnimations(configManager);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Failed to load animation files!", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
BungeeServerTracker.resetTrackedServers();
|
||||||
|
BungeeServerTracker.restartTask(Configuration.bungeeRefreshSeconds);
|
||||||
|
|
||||||
|
PlaceholdersManager.untrackAll();
|
||||||
|
internalHologramManager.clearAll();
|
||||||
|
|
||||||
|
if (deferHologramLoad) {
|
||||||
|
// For the initial load: holograms are loaded later, when the worlds are ready
|
||||||
|
Bukkit.getScheduler().runTask(this, () -> createHolograms(sender));
|
||||||
|
} else {
|
||||||
|
createHolograms(sender);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createHolograms(CommandSender sender) {
|
||||||
|
// Create all the holograms
|
||||||
|
for (HologramConfig hologramConfig : configManager.getHologramDatabase().getHolograms()) {
|
||||||
|
try {
|
||||||
|
hologramConfig.createHologram(internalHologramManager);
|
||||||
|
} catch (HologramLoadException e) {
|
||||||
|
if (sender != null) {
|
||||||
|
Messages.sendWarning(sender, Utils.formatExceptionMessage(e));
|
||||||
|
} else {
|
||||||
|
Log.warning(Utils.formatExceptionMessage(e));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unexpected exception while loading the hologram \"" + hologramConfig.getName() + "\".", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Then trigger a refresh for all of them
|
||||||
|
for (BaseHologram hologram : internalHologramManager.getHolograms()) {
|
||||||
|
hologram.refreshAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
|
@ -71,7 +71,7 @@ public class HologramCommandManager extends SubCommandManager {
|
|||||||
subCommands.add(new MovehereCommand(internalHologramManager, configManager));
|
subCommands.add(new MovehereCommand(internalHologramManager, configManager));
|
||||||
subCommands.add(new AlignCommand(internalHologramManager, configManager));
|
subCommands.add(new AlignCommand(internalHologramManager, configManager));
|
||||||
subCommands.add(new CopyCommand(internalHologramManager, configManager));
|
subCommands.add(new CopyCommand(internalHologramManager, configManager));
|
||||||
subCommands.add(new ReloadCommand(configManager, internalHologramManager));
|
subCommands.add(new ReloadCommand());
|
||||||
|
|
||||||
subCommands.add(new RemovelineCommand(this, internalHologramManager, configManager));
|
subCommands.add(new RemovelineCommand(this, internalHologramManager, configManager));
|
||||||
subCommands.add(new SetlineCommand(this, internalHologramManager, configManager));
|
subCommands.add(new SetlineCommand(this, internalHologramManager, configManager));
|
||||||
|
@ -6,68 +6,23 @@
|
|||||||
package me.filoghost.holographicdisplays.commands.subs;
|
package me.filoghost.holographicdisplays.commands.subs;
|
||||||
|
|
||||||
import me.filoghost.fcommons.command.sub.SubCommandContext;
|
import me.filoghost.fcommons.command.sub.SubCommandContext;
|
||||||
import me.filoghost.fcommons.logging.Log;
|
|
||||||
import me.filoghost.holographicdisplays.Colors;
|
import me.filoghost.holographicdisplays.Colors;
|
||||||
import me.filoghost.holographicdisplays.bridge.bungeecord.BungeeServerTracker;
|
import me.filoghost.holographicdisplays.HolographicDisplays;
|
||||||
import me.filoghost.holographicdisplays.commands.HologramSubCommand;
|
import me.filoghost.holographicdisplays.commands.HologramSubCommand;
|
||||||
import me.filoghost.holographicdisplays.commands.Messages;
|
|
||||||
import me.filoghost.holographicdisplays.common.Utils;
|
|
||||||
import me.filoghost.holographicdisplays.disk.ConfigManager;
|
|
||||||
import me.filoghost.holographicdisplays.disk.Configuration;
|
|
||||||
import me.filoghost.holographicdisplays.disk.HologramConfig;
|
|
||||||
import me.filoghost.holographicdisplays.disk.HologramLoadException;
|
|
||||||
import me.filoghost.holographicdisplays.event.HolographicDisplaysReloadEvent;
|
import me.filoghost.holographicdisplays.event.HolographicDisplaysReloadEvent;
|
||||||
import me.filoghost.holographicdisplays.object.BaseHologram;
|
|
||||||
import me.filoghost.holographicdisplays.object.InternalHologramManager;
|
|
||||||
import me.filoghost.holographicdisplays.placeholder.AnimationsRegister;
|
|
||||||
import me.filoghost.holographicdisplays.placeholder.PlaceholdersManager;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
public class ReloadCommand extends HologramSubCommand {
|
public class ReloadCommand extends HologramSubCommand {
|
||||||
|
|
||||||
private final ConfigManager configManager;
|
public ReloadCommand() {
|
||||||
private final InternalHologramManager internalHologramManager;
|
|
||||||
|
|
||||||
public ReloadCommand(ConfigManager configManager, InternalHologramManager internalHologramManager) {
|
|
||||||
super("reload");
|
super("reload");
|
||||||
setDescription("Reloads the holograms from the database.");
|
setDescription("Reloads the holograms from the database.");
|
||||||
|
|
||||||
this.configManager = configManager;
|
|
||||||
this.internalHologramManager = internalHologramManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args, SubCommandContext context) {
|
public void execute(CommandSender sender, String[] args, SubCommandContext context) {
|
||||||
configManager.reloadCustomPlaceholders();
|
HolographicDisplays.getInstance().load(sender, false);
|
||||||
configManager.reloadMainConfig();
|
|
||||||
|
|
||||||
BungeeServerTracker.resetTrackedServers();
|
|
||||||
BungeeServerTracker.restartTask(Configuration.bungeeRefreshSeconds);
|
|
||||||
|
|
||||||
configManager.reloadHologramDatabase();
|
|
||||||
try {
|
|
||||||
AnimationsRegister.loadAnimations(configManager);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.warning("Failed to load animation files!", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
PlaceholdersManager.untrackAll();
|
|
||||||
internalHologramManager.clearAll();
|
|
||||||
|
|
||||||
// Create all the holograms
|
|
||||||
for (HologramConfig hologramConfig : configManager.getHologramDatabase().getHolograms()) {
|
|
||||||
try {
|
|
||||||
hologramConfig.createHologram(internalHologramManager);
|
|
||||||
} catch (HologramLoadException e) {
|
|
||||||
Messages.sendWarning(sender, Utils.formatExceptionMessage(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Then trigger a refresh for all of them
|
|
||||||
for (BaseHologram hologram : internalHologramManager.getHolograms()) {
|
|
||||||
hologram.refreshAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(Colors.PRIMARY + "Configuration reloaded successfully.");
|
sender.sendMessage(Colors.PRIMARY + "Configuration reloaded successfully.");
|
||||||
Bukkit.getPluginManager().callEvent(new HolographicDisplaysReloadEvent());
|
Bukkit.getPluginManager().callEvent(new HolographicDisplaysReloadEvent());
|
||||||
|
@ -46,7 +46,7 @@ public class PlaceholdersManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void load(Plugin plugin) {
|
public static void startRefreshTask(Plugin plugin) {
|
||||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> {
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> {
|
||||||
|
|
||||||
for (Placeholder placeholder : PlaceholdersRegister.getPlaceholders()) {
|
for (Placeholder placeholder : PlaceholdersRegister.getPlaceholders()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user