1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2025-12-19 14:59:20 +00:00

Close all skin sockets on shutdown (#363)

This commit is contained in:
Konicai
2022-10-27 15:12:07 -04:00
committed by GitHub
parent 90e9b1e3fc
commit c2b887f5a7
2 changed files with 19 additions and 1 deletions

View File

@@ -170,7 +170,9 @@ public class CommonModule extends AbstractModule {
FloodgateApi api,
SkinApplier skinApplier,
FloodgateLogger logger) {
return new SkinUploadManager(api, skinApplier, logger);
SkinUploadManager manager = new SkinUploadManager(api, skinApplier, logger);
eventBus.register(manager);
return manager;
}
@Provides

View File

@@ -29,9 +29,13 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import lombok.AllArgsConstructor;
import org.geysermc.event.Listener;
import org.geysermc.event.subscribe.Subscribe;
import org.geysermc.floodgate.api.FloodgateApi;
import org.geysermc.floodgate.api.logger.FloodgateLogger;
import org.geysermc.floodgate.event.ShutdownEvent;
@Listener
@AllArgsConstructor
public final class SkinUploadManager {
private final Int2ObjectMap<SkinUploadSocket> connections =
@@ -53,4 +57,16 @@ public final class SkinUploadManager {
public void removeConnection(int id, SkinUploadSocket socket) {
connections.remove(id, socket);
}
public void closeAllSockets() {
for (SkinUploadSocket socket : connections.values()) {
socket.close();
}
connections.clear();
}
@Subscribe
public void onShutdown(ShutdownEvent ignored) {
closeAllSockets();
}
}