Feature - plugin watcher, detect file changes & reload

This commit is contained in:
Frank van der Heijden 2020-07-20 20:19:07 +02:00
parent 719163c579
commit 07719cc1cc
No known key found for this signature in database
GPG key ID: 26DA56488D314D11
24 changed files with 387 additions and 15 deletions

View file

@ -334,11 +334,21 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
return loader.getPluginDescription(file);
}
@Override
public File getPluginFile(Plugin plugin) {
try {
return RJavaPlugin.getFile(plugin);
} catch (ReflectiveOperationException ex) {
throw new RuntimeException("Error retrieving current plugin file", ex);
}
}
/**
* Attempts to retrieve the plugin file by plugin name.
* @param pluginName The plugin name.
* @return The file, or null if invalid or not found.
*/
@Override
public File getPluginFile(String pluginName) {
for (File file : getPluginJars()) {
PluginDescriptionFile descriptionFile;
@ -354,12 +364,8 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
}
@Override
public File getPluginFile(Plugin plugin) {
try {
return RJavaPlugin.getFile(plugin);
} catch (ReflectiveOperationException ex) {
throw new RuntimeException("Error retrieving current plugin file", ex);
}
public Plugin getPlugin(String pluginName) {
return Bukkit.getPluginManager().getPlugin(pluginName);
}
@Override

View file

@ -3,16 +3,21 @@ package net.frankheijden.serverutils.bukkit.managers;
import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.common.managers.AbstractTaskManager;
import org.bukkit.Bukkit;
import org.bukkit.scheduler.BukkitTask;
public class BukkitTaskManager extends AbstractTaskManager {
public class BukkitTaskManager extends AbstractTaskManager<BukkitTask> {
public BukkitTaskManager() {
super(BukkitTask::cancel);
}
@Override
public void runTask(Runnable runnable) {
Bukkit.getScheduler().runTask(ServerUtils.getInstance(), runnable);
addTask(Bukkit.getScheduler().runTask(ServerUtils.getInstance(), runnable));
}
@Override
public void runTaskAsynchronously(Runnable runnable) {
Bukkit.getScheduler().runTaskAsynchronously(ServerUtils.getInstance(), runnable);
addTask(Bukkit.getScheduler().runTaskAsynchronously(ServerUtils.getInstance(), runnable));
}
}