de.pewpewproject.lasertag.mixin.ServerWorldMixin   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 46
dl 0
loc 55
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getServerLasertagManager() 0 3 1
B init(CallbackInfo) 0 45 1
1
package de.pewpewproject.lasertag.mixin;
2
3
import de.pewpewproject.lasertag.lasertaggame.state.management.server.IServerLasertagManager;
4
import de.pewpewproject.lasertag.lasertaggame.state.management.server.IServerLasertagManagerAccessor;
5
import de.pewpewproject.lasertag.lasertaggame.state.management.server.implementation.*;
6
import de.pewpewproject.lasertag.lasertaggame.state.management.server.synced.implementation.*;
7
import de.pewpewproject.lasertag.lasertaggame.state.server.implementation.SettingsPresetsState;
8
import de.pewpewproject.lasertag.lasertaggame.state.synced.implementation.SyncedState;
9
import net.minecraft.server.world.ServerWorld;
10
import org.spongepowered.asm.mixin.Mixin;
11
import org.spongepowered.asm.mixin.injection.At;
12
import org.spongepowered.asm.mixin.injection.Inject;
13
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14
15
/**
16
 * Mixin into the ServerWorld.class to save the server lasertag manager
17
 *
18
 * @author Étienne Muser
19
 */
20
@Mixin(ServerWorld.class)
21
public abstract class ServerWorldMixin implements IServerLasertagManagerAccessor {
22
23
    private IServerLasertagManager serverLasertagManager;
24
25
    @Inject(method = "<init>", at = @At("TAIL"))
26
    private void init(CallbackInfo ci) {
27
28
        var world = (ServerWorld)(Object)this;
29
        var server = world.getServer();
30
31
        var syncedState = new SyncedState();
32
33
        var spawnpointManager = new SpawnpointManager(syncedState.getTeamsConfigState());
34
        var blockTickManager = new BlockTickManager(server);
35
        var arenaManager = new ArenaManager(server, spawnpointManager, syncedState.getPlayerNamesState(), blockTickManager);
36
37
        var musicManager = new MusicManager(server);
38
        var gameModeManager = new GameModeManager(syncedState.getGameModeState(), server);
39
        var settingsManager = new SettingsManager(server, syncedState.getSettingsState(), gameModeManager);
40
        gameModeManager.setSettingsManager(settingsManager);
41
        var lasertargetsManager = new LasertargetsManager(syncedState.getLasertargetState(), settingsManager, server);
42
        var teamsManager = new TeamsManager(syncedState.getTeamsState(), syncedState.getTeamsConfigState(), server, settingsManager);
43
        var scoreManager = new ScoreManager(syncedState.getScoreState(), server);
44
        var uiStateManager = new UIStateManager(syncedState.getUIState(), gameModeManager, settingsManager);
45
        var eliminationManager = new EliminationManager(server, syncedState.getEliminationState(), settingsManager, teamsManager, syncedState.getUIState(), syncedState.getTeamsConfigState());
46
        var captureTheFlagManager = new CaptureTheFlagManager(world, syncedState.getCaptureTheFlagState(), settingsManager, gameModeManager, teamsManager, eliminationManager, syncedState.getTeamsConfigState());
47
        var activationManager = new ActivationManager(syncedState.getActivationState(), server, settingsManager, syncedState.getPlayerNamesState());
48
        var settingsPresetsNameManager = new SettingsPresetsNameManager(syncedState.getSettingsPresetsNamesState(), server);
49
        var settingsPresetsManager = new SettingsPresetsManager(new SettingsPresetsState(), settingsPresetsNameManager, settingsManager);
50
        var musicalChairsManager = new MusicalChairsManager(settingsManager, teamsManager, scoreManager, gameModeManager, syncedState.getTeamsConfigState(), eliminationManager, lasertargetsManager, world);
51
52
        serverLasertagManager = new ServerLasertagManager(server,
53
                syncedState,
54
                arenaManager,
55
                blockTickManager,
56
                musicManager,
57
                settingsPresetsManager,
58
                spawnpointManager,
59
                activationManager,
60
                captureTheFlagManager,
61
                gameModeManager,
62
                scoreManager,
63
                settingsManager,
64
                settingsPresetsNameManager,
65
                teamsManager,
66
                uiStateManager,
67
                musicalChairsManager,
68
                eliminationManager,
69
                lasertargetsManager);
70
    }
71
72
    @Override
73
    public IServerLasertagManager getServerLasertagManager() {
74
        return serverLasertagManager;
75
    }
76
}
77