コード例 #1
0
    public static MessageTypeCacheBuilder AddWorld(this MessageTypeCacheBuilder messageTypes)
    {
        var services = messageTypes.Services;

        // Should be transient or scoped since it needs IClientsService.
        services.AddTransient <ILocationRepository, LocationRepository>();
        services.AddSingleton <LocationStore>();

        services.AddTransient <IActivityStore>(x => (IActivityStore)x.GetRequiredService <ILocationRepository>());
        services.AddTransient <ICharacterActivityStore, CharacterActivityStore>();
        services.AddProfileApiClients();

        services
        .AddTransient <IConnectHook, ConnectHook>()
        .UseUpdateFactory <WorldUpdateFactory>()
        .RegisterHandler <MoveToLocation, MoveToLocationHandler>()
        .RegisterHandler <JoinRopeWarContest, JoinRopeWarContestHandler>()
        .RegisterHandler <LeaveJoinedRopeWarContest, LeaveJoinedRopeWarContestHandler>()
        .RegisterHandler <ProposeRopeWarContest, ProposeRopeWarContestHandler>()
        .RegisterHandler <SwitchSides, SwitchSidesHandler>()
        .RegisterHandler <VoteToStartRopeWar, VoteToStartRopeWarHandler>();

        services.RegisterClientMessagingForServer <SignalRClientConnectionFactoryFactory>();

        messageTypes.AddWorldMessages();
        return(messageTypes);
    }
コード例 #2
0
        public static MessageTypeCacheBuilder AddWorld(this MessageTypeCacheBuilder messageTypes)
        {
            var services = messageTypes.Services;

            services.AddSingleton <ILocationStore, LocationStore>();
            services.AddProfileApiClients();

            services
            .AddTransient <IConnectHook, ConnectHook>()
            .UseUpdateFactory <LocationUpdateFactory>()
            .RegisterHandler <JoinRopeWarContest, JoinRopeWarContestHandler>()
            .RegisterHandler <LeaveJoinedRopeWarContest, LeaveJoinedRopeWarContestHandler>()
            .RegisterHandler <MoveToLocation, MoveToLocationHandler>()
            .RegisterHandler <ProposeRopeWarContest, ProposeRopeWarContestHandler>()
            .RegisterHandler <VoteToStartRopeWar, VoteToStartRopeWarHandler>();

            messageTypes.AddWorldMessages();
            return(messageTypes);
        }