Reworked usage of special methods onEnable & onDisable

This commit is contained in:
Roman Zhuravlev 2025-08-31 19:33:22 +05:00
parent 1d501f0bf2
commit 9fbe620b6a
2 changed files with 46 additions and 32 deletions

View file

@ -1,8 +1,8 @@
package org.zhdev.varioutil; package org.zhdev;
import org.zhdev.varioutil.language.Language; import org.zhdev.language.Language;
import org.zhdev.varioutil.util.CollectionUtils; import org.zhdev.util.CollectionUtils;
import org.zhdev.varioutil.util.ColorUtils; import org.zhdev.util.ColorUtils;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.PluginIdentifiableCommand; import org.bukkit.command.PluginIdentifiableCommand;
@ -12,14 +12,14 @@ import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.zhdev.varioutil.bukkit.command.PreparedPluginCommand; import org.zhdev.bukkit.command.PreparedPluginCommand;
import org.zhdev.varioutil.config.BukkitYamlConfig; import org.zhdev.config.BukkitYamlConfig;
import org.zhdev.varioutil.config.Config; import org.zhdev.config.Config;
import org.zhdev.varioutil.config.ConfigSection; import org.zhdev.config.ConfigSection;
import org.zhdev.varioutil.config.YamlConfig; import org.zhdev.config.YamlConfig;
import org.zhdev.varioutil.sql.SqlAdapter; import org.zhdev.sql.SqlAdapter;
import org.zhdev.varioutil.util.BukkitUtils; import org.zhdev.util.BukkitUtils;
import org.zhdev.varioutil.util.ConfigUtils; import org.zhdev.util.ConfigUtils;
import java.io.File; import java.io.File;
import java.nio.file.Path; import java.nio.file.Path;
@ -138,11 +138,17 @@ public abstract class BukkitPreparedPlugin extends BukkitPlugin implements Liste
sqlAdapter.setProvider(ConfigUtils.createSqlConnectionProvider(databaseConfig, getDataFolder().getPath())); sqlAdapter.setProvider(ConfigUtils.createSqlConnectionProvider(databaseConfig, getDataFolder().getPath()));
} }
protected void onLoading() {} protected void onPreLoad() {}
protected void onEnabling() {} protected void onPostLoad() {}
protected void onDisabling() {} protected void onPreEnable() {}
protected void onPostEnable() {}
protected void onPreDisable() {}
protected void onPostDisable() {}
private void load() { private void load() {
loadDefaultConfig(); loadDefaultConfig();
@ -152,8 +158,9 @@ public abstract class BukkitPreparedPlugin extends BukkitPlugin implements Liste
@Override @Override
public final void onLoad() { public final void onLoad() {
onPreLoad();
load(); load();
onLoading(); onPostLoad();
} }
private void enable() { private void enable() {
@ -162,8 +169,9 @@ public abstract class BukkitPreparedPlugin extends BukkitPlugin implements Liste
@Override @Override
public final void onEnable() { public final void onEnable() {
onPreEnable();
enable(); enable();
onEnabling(); onPostEnable();
} }
private void disable() { private void disable() {
@ -180,11 +188,11 @@ public abstract class BukkitPreparedPlugin extends BukkitPlugin implements Liste
@Override @Override
public final void onDisable() { public final void onDisable() {
try { try {
onDisabling(); onPreDisable();
disable(); disable();
} catch (Exception e) { onPostDisable();
} finally {
disable(); disable();
throw e;
} }
} }

View file

@ -1,17 +1,17 @@
package org.zhdev.varioutil; package org.zhdev;
import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; import com.velocitypowered.api.event.proxy.ProxyShutdownEvent;
import com.velocitypowered.api.proxy.ProxyServer; import com.velocitypowered.api.proxy.ProxyServer;
import org.zhdev.varioutil.config.ConfigSection; import org.zhdev.config.ConfigSection;
import org.zhdev.varioutil.language.Language; import org.zhdev.language.Language;
import org.zhdev.varioutil.util.ColorUtils; import org.zhdev.util.ColorUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.zhdev.varioutil.config.Config; import org.zhdev.config.Config;
import org.zhdev.varioutil.config.VelocityTomlConfig; import org.zhdev.config.VelocityTomlConfig;
import org.zhdev.varioutil.sql.SqlAdapter; import org.zhdev.sql.SqlAdapter;
import org.zhdev.varioutil.util.ConfigUtils; import org.zhdev.util.ConfigUtils;
import java.nio.file.Path; import java.nio.file.Path;
@ -59,20 +59,26 @@ public abstract class VelocityPreparedPlugin extends VelocityPlugin implements P
return sqlAdapter; return sqlAdapter;
} }
protected void onEnabling() {} protected void onPreEnable() {}
protected void onDisabling() {} protected void onPostEnable() {}
protected void onPreDisable() {}
protected void onPostDisable() {}
@Subscribe @Subscribe
private void onProxyInitialization(ProxyInitializeEvent event) { private void onProxyInitialization(ProxyInitializeEvent event) {
onPreEnable();
loadConfig(defaultConfig); loadConfig(defaultConfig);
loadPhrases(); loadPhrases();
establishSqlConnection(); establishSqlConnection();
onEnabling(); onPostEnable();
} }
@Subscribe @Subscribe
private void onProxyInitialization(ProxyShutdownEvent event) { private void onProxyInitialization(ProxyShutdownEvent event) {
onDisabling(); onPreDisable();
onPostDisable();
} }
} }