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); }
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); }