3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-09-28 06:31:05 +02:00

Add ViaManager#addPostEnableListener (#4038)

Dieser Commit ist enthalten in:
EnZaXD 2024-07-22 18:24:06 +02:00 committet von GitHub
Ursprung 40a44d5dc5
Commit 24d0ae7607
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194
3 geänderte Dateien mit 21 neuen und 16 gelöschten Zeilen

Datei anzeigen

@ -140,6 +140,13 @@ public interface ViaManager {
*/ */
void addEnableListener(Runnable runnable); void addEnableListener(Runnable runnable);
/**
* Adds a runnable to be executed when ViaVersion has finished its init after the full server load.
*
* @param runnable runnable to be executed
*/
void addPostEnableListener(Runnable runnable);
/** /**
* Returns whether the manager has been initialized (and protocols have been loaded). * Returns whether the manager has been initialized (and protocols have been loaded).
* *

Datei anzeigen

@ -67,6 +67,7 @@ public class ViaManagerImpl implements ViaManager {
private final ViaPlatformLoader loader; private final ViaPlatformLoader loader;
private final Set<String> subPlatforms = new HashSet<>(); private final Set<String> subPlatforms = new HashSet<>();
private List<Runnable> enableListeners = new ArrayList<>(); private List<Runnable> enableListeners = new ArrayList<>();
private List<Runnable> postEnableListeners = new ArrayList<>();
private PlatformTask<?> mappingLoadingTask; private PlatformTask<?> mappingLoadingTask;
private boolean initialized; private boolean initialized;
@ -184,6 +185,11 @@ public class ViaManagerImpl implements ViaManager {
// Refresh Versions // Refresh Versions
protocolManager.refreshVersions(); protocolManager.refreshVersions();
for (final Runnable listener : postEnableListeners) {
listener.run();
}
postEnableListeners = null;
} }
private void loadServerProtocol() { private void loadServerProtocol() {
@ -317,25 +323,21 @@ public class ViaManagerImpl implements ViaManager {
return configurationProvider; return configurationProvider;
} }
/** @Override
* Returns a mutable set of self-added subplatform version strings.
* This set is expanded by the subplatform itself (e.g. ViaBackwards), and may not contain all running ones.
*
* @return mutable set of subplatform versions
*/
public Set<String> getSubPlatforms() { public Set<String> getSubPlatforms() {
return subPlatforms; return subPlatforms;
} }
/** @Override
* Adds a runnable to be executed when ViaVersion has finished its init before the full server load.
*
* @param runnable runnable to be executed
*/
public void addEnableListener(Runnable runnable) { public void addEnableListener(Runnable runnable) {
enableListeners.add(runnable); enableListeners.add(runnable);
} }
@Override
public void addPostEnableListener(final Runnable runnable) {
postEnableListeners.add(runnable);
}
@Override @Override
public boolean isInitialized() { public boolean isInitialized() {
return initialized; return initialized;

Datei anzeigen

@ -24,7 +24,6 @@ import com.viaversion.viaversion.api.platform.ViaPlatformLoader;
import com.viaversion.viaversion.api.platform.providers.ViaProviders; import com.viaversion.viaversion.api.platform.providers.ViaProviders;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import com.viaversion.viaversion.api.protocol.version.VersionProvider; import com.viaversion.viaversion.api.protocol.version.VersionProvider;
import com.viaversion.viaversion.protocol.version.BaseVersionProvider;
import com.viaversion.viaversion.protocols.v1_8to1_9.provider.BossBarProvider; import com.viaversion.viaversion.protocols.v1_8to1_9.provider.BossBarProvider;
import com.viaversion.viaversion.velocity.listeners.UpdateListener; import com.viaversion.viaversion.velocity.listeners.UpdateListener;
import com.viaversion.viaversion.velocity.providers.VelocityBossBarProvider; import com.viaversion.viaversion.velocity.providers.VelocityBossBarProvider;
@ -44,10 +43,7 @@ public class VelocityViaLoader implements ViaPlatformLoader {
providers.use(BossBarProvider.class, new VelocityBossBarProvider()); providers.use(BossBarProvider.class, new VelocityBossBarProvider());
} }
// Allow platforms to override the version provider
if (providers.get(VersionProvider.class) instanceof BaseVersionProvider) {
providers.use(VersionProvider.class, new VelocityVersionProvider()); providers.use(VersionProvider.class, new VelocityVersionProvider());
}
// We probably don't need a EntityIdProvider because velocity sends a Join packet on server change // We probably don't need a EntityIdProvider because velocity sends a Join packet on server change
// We don't need main hand patch because Join Game packet makes client send hand data again // We don't need main hand patch because Join Game packet makes client send hand data again