Add client disconnection logic to TransitionService

Problem: disconnecting requires access to CharacterSaver,
which is not available in Client.
Having it in a service like this solves that problem.

Next step is to migrate all calls to Client#disconnect and Client#forceDisconnect
to their TransitionService counterparts.
This commit is contained in:
P0nk
2023-08-08 21:51:12 +02:00
parent f6d06ba82a
commit d5682a5f65
10 changed files with 272 additions and 102 deletions

View File

@@ -7,8 +7,8 @@ import database.character.CharacterLoader;
import database.character.CharacterSaver;
import database.drop.DropProvider;
import server.shop.ShopFactory;
import service.ChannelService;
import service.NoteService;
import service.TransitionService;
import java.util.Objects;
@@ -18,7 +18,7 @@ import java.util.Objects;
public record ChannelDependencies(
CharacterLoader characterLoader, CharacterSaver characterSaver, NoteService noteService,
FredrickProcessor fredrickProcessor, MakerProcessor makerProcessor, DropProvider dropProvider,
CommandsExecutor commandsExecutor, ShopFactory shopFactory, ChannelService channelService
CommandsExecutor commandsExecutor, ShopFactory shopFactory, TransitionService transitionService
) {
public ChannelDependencies {
@@ -30,6 +30,6 @@ public record ChannelDependencies(
Objects.requireNonNull(dropProvider);
Objects.requireNonNull(commandsExecutor);
Objects.requireNonNull(shopFactory);
Objects.requireNonNull(channelService);
Objects.requireNonNull(transitionService);
}
}