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,
|
FloodgateApi api,
|
||||||
SkinApplier skinApplier,
|
SkinApplier skinApplier,
|
||||||
FloodgateLogger logger) {
|
FloodgateLogger logger) {
|
||||||
return new SkinUploadManager(api, skinApplier, logger);
|
SkinUploadManager manager = new SkinUploadManager(api, skinApplier, logger);
|
||||||
|
eventBus.register(manager);
|
||||||
|
return manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@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.Int2ObjectMaps;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||||
import lombok.AllArgsConstructor;
|
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.FloodgateApi;
|
||||||
import org.geysermc.floodgate.api.logger.FloodgateLogger;
|
import org.geysermc.floodgate.api.logger.FloodgateLogger;
|
||||||
|
import org.geysermc.floodgate.event.ShutdownEvent;
|
||||||
|
|
||||||
|
@Listener
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public final class SkinUploadManager {
|
public final class SkinUploadManager {
|
||||||
private final Int2ObjectMap<SkinUploadSocket> connections =
|
private final Int2ObjectMap<SkinUploadSocket> connections =
|
||||||
@@ -53,4 +57,16 @@ public final class SkinUploadManager {
|
|||||||
public void removeConnection(int id, SkinUploadSocket socket) {
|
public void removeConnection(int id, SkinUploadSocket socket) {
|
||||||
connections.remove(id, 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