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:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user