mirror of
https://github.com/YouHaveTrouble/YardWatch.git
synced 2026-05-11 22:16:58 +00:00
Improve plugin registration logic in YardWatch
Refactored the plugin enablement checks in `YardWatch.java` to use a new method `shouldRegisterService`. This method determines if a plugin is enabled and if it provides an implementation for the Protection service, therefore enhancing plugin setup accuracy.
This commit is contained in:
@@ -2,27 +2,51 @@ package me.youhavetrouble.yardwatch;
|
|||||||
|
|
||||||
import me.youhavetrouble.yardwatch.hooks.GriefPreventionProtection;
|
import me.youhavetrouble.yardwatch.hooks.GriefPreventionProtection;
|
||||||
import me.youhavetrouble.yardwatch.hooks.WorldGuardProtection;
|
import me.youhavetrouble.yardwatch.hooks.WorldGuardProtection;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
import org.bukkit.plugin.ServicePriority;
|
import org.bukkit.plugin.ServicePriority;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public final class YardWatch extends JavaPlugin {
|
public final class YardWatch extends JavaPlugin {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
PluginManager pluginManager = getServer().getPluginManager();
|
|
||||||
|
|
||||||
if (pluginManager.isPluginEnabled("WorldGuard")) {
|
if (shouldRegisterService("WorldGuard")) {
|
||||||
getServer().getServicesManager().register(
|
getServer().getServicesManager().register(
|
||||||
Protection.class, new WorldGuardProtection(this), this, ServicePriority.Normal
|
Protection.class, new WorldGuardProtection(this), this, ServicePriority.Normal
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pluginManager.isPluginEnabled("GriefPrevention")) {
|
if (shouldRegisterService("GriefPrevention")) {
|
||||||
getServer().getServicesManager().register(
|
getServer().getServicesManager().register(
|
||||||
Protection.class, new GriefPreventionProtection(this), this, ServicePriority.Normal
|
Protection.class, new GriefPreventionProtection(this), this, ServicePriority.Normal
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines whether a service should be registered for a given plugin.
|
||||||
|
* @param pluginName The name of the plugin
|
||||||
|
* @return True if the service should be registered, false otherwise
|
||||||
|
*/
|
||||||
|
private boolean shouldRegisterService(String pluginName) {
|
||||||
|
Plugin plugin = getServer().getPluginManager().getPlugin(pluginName);
|
||||||
|
if (plugin == null || !plugin.isEnabled()) return false;
|
||||||
|
List<RegisteredServiceProvider<?>> serviceProviders = getServer().getServicesManager().getRegistrations(plugin);
|
||||||
|
for (RegisteredServiceProvider<?> serviceProvider : serviceProviders) {
|
||||||
|
if (serviceProvider.getService() == Protection.class) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
getServer().getServicesManager().unregisterAll(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user