mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2024-11-21 17:45:36 +01:00
Only print reload info when needed, add additional log message after shutdown
Thanks to its name and dependency order, ViaVersion will generally be the last plugin to be disabled and has occasionally been blamed for other plugins stalling server shutdown
This commit is contained in:
parent
040f85659d
commit
462a10363c
@ -215,4 +215,13 @@ public interface ViaPlatform<T> {
|
||||
* @return whether the platform has a plugin/mod with the given name
|
||||
*/
|
||||
boolean hasPlugin(String name);
|
||||
|
||||
/**
|
||||
* Returns whether the platform might be reloading.
|
||||
*
|
||||
* @return whether the platform might be reloading
|
||||
*/
|
||||
default boolean couldBeReloading() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -30,4 +30,9 @@ public interface ViaServerProxyPlatform<T> extends ViaPlatform<T> {
|
||||
* @return protocol detector service
|
||||
*/
|
||||
ProtocolDetectorService protocolDetectorService();
|
||||
|
||||
@Override
|
||||
default boolean couldBeReloading() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -268,6 +268,11 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform<Player>
|
||||
return getServer().getPluginManager().getPlugin(name) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean couldBeReloading() {
|
||||
return !(PaperViaInjector.PAPER_IS_STOPPING_METHOD && Bukkit.isStopping());
|
||||
}
|
||||
|
||||
public boolean isLateBind() {
|
||||
return lateBind;
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ public final class PaperViaInjector {
|
||||
public static final boolean PAPER_INJECTION_METHOD = hasPaperInjectionMethod();
|
||||
public static final boolean PAPER_PROTOCOL_METHOD = hasServerProtocolMethod();
|
||||
public static final boolean PAPER_PACKET_LIMITER = hasPacketLimiter();
|
||||
public static final boolean PAPER_IS_STOPPING_METHOD = hasIsStoppingMethod();
|
||||
|
||||
private PaperViaInjector() {
|
||||
}
|
||||
@ -76,6 +77,15 @@ public final class PaperViaInjector {
|
||||
return hasClass("io.papermc.paper.network.ChannelInitializeListener");
|
||||
}
|
||||
|
||||
private static boolean hasIsStoppingMethod() {
|
||||
try {
|
||||
Bukkit.class.getDeclaredMethod("isStopping");
|
||||
return true;
|
||||
} catch (final NoSuchMethodException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean hasPacketLimiter() {
|
||||
return hasClass("com.destroystokyo.paper.PaperConfig$PacketLimit") || hasClass("io.papermc.paper.configuration.GlobalConfiguration$PacketLimiter");
|
||||
}
|
||||
|
@ -210,8 +210,10 @@ public class ViaManagerImpl implements ViaManager {
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
// Uninject
|
||||
platform.getLogger().info("ViaVersion is disabling, if this is a reload and you experience issues consider rebooting.");
|
||||
if (platform.couldBeReloading()) {
|
||||
platform.getLogger().info("ViaVersion is disabling. If this is a reload and you experience issues, please reboot instead.");
|
||||
}
|
||||
|
||||
try {
|
||||
injector.uninject();
|
||||
} catch (Exception e) {
|
||||
@ -220,6 +222,8 @@ public class ViaManagerImpl implements ViaManager {
|
||||
|
||||
loader.unload();
|
||||
scheduler.shutdown();
|
||||
|
||||
platform.getLogger().info("ViaVersion has been disabled; uninjected the platform shut down the scheduler.");
|
||||
}
|
||||
|
||||
private void checkJavaVersion() { // Stolen from Paper
|
||||
|
@ -136,4 +136,9 @@ public final class TestPlatform implements ViaPlatform {
|
||||
public boolean hasPlugin(final String name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean couldBeReloading() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user