コード例 #1
0
    /// <inheritdoc />
    protected override void ConfigureServices(IServiceProvider serviceProvider)
    {
        this.Database = serviceProvider.GetRequiredService <RoleplayingDatabaseContext>();
        this.Database.Database.Create();

        this.Roleplays = serviceProvider.GetRequiredService <RoleplayService>();
    }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SetCommands"/> class.
 /// </summary>
 /// <param name="roleplays">The roleplay service.</param>
 /// <param name="feedback">The user feedback service.</param>
 public SetCommands
 (
     RoleplayService roleplays,
     UserFeedbackService feedback)
 {
     _roleplays = roleplays;
     _feedback  = feedback;
 }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayLoggingBehaviour"/> class.
 /// </summary>
 /// <param name="client">The discord client.</param>
 /// <param name="roleplays">The roleplay service.</param>
 public RoleplayLoggingBehaviour
 (
     [NotNull] DiscordSocketClient client,
     [NotNull] RoleplayService roleplays
 )
     : base(client)
 {
     _roleplays = roleplays;
 }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayServerCommands"/> class.
 /// </summary>
 /// <param name="feedback">The user feedback service.</param>
 /// <param name="roleplaying">The roleplaying service.</param>
 /// <param name="servers">The server service.</param>
 public RoleplayServerCommands
 (
     UserFeedbackService feedback,
     RoleplayService roleplaying,
     ServerService servers)
 {
     _feedback    = feedback;
     _roleplaying = roleplaying;
     _servers     = servers;
 }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayArchivalBehaviour"/> class.
 /// </summary>
 /// <param name="client">The Discord client.</param>
 /// <param name="roleplays">The roleplaying service.</param>
 /// <param name="feedback">The feedback service.</param>
 /// <param name="servers">The server service.</param>
 public RoleplayArchivalBehaviour
 (
     [NotNull] DiscordSocketClient client,
     [NotNull] RoleplayService roleplays,
     [NotNull] UserFeedbackService feedback,
     [NotNull] ServerService servers
 )
     : base(client)
 {
     _roleplays = roleplays;
     _feedback  = feedback;
     _servers   = servers;
 }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayCommands"/> class.
 /// </summary>
 /// <param name="roleplays">The roleplay service.</param>
 /// <param name="feedback">The user feedback service.</param>
 /// <param name="interactivity">The interactivity service.</param>
 /// <param name="users">The user service.</param>
 public RoleplayCommands
 (
     RoleplayService roleplays,
     UserFeedbackService feedback,
     InteractivityService interactivity,
     UserService users
 )
 {
     _roleplays     = roleplays;
     _feedback      = feedback;
     _interactivity = interactivity;
     _users         = users;
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayTimeoutBehaviour"/> class.
 /// </summary>
 /// <param name="client">The discord client.</param>
 /// <param name="database">The database.</param>
 /// <param name="roleplays">The roleplay service.</param>
 /// <param name="feedback">The feedback service.</param>
 public RoleplayTimeoutBehaviour
 (
     DiscordSocketClient client,
     RoleplayingDatabaseContext database,
     RoleplayService roleplays,
     [NotNull] UserFeedbackService feedback
 )
     : base(client)
 {
     this.Database  = database;
     this.Roleplays = roleplays;
     this.Feedback  = feedback;
 }
コード例 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayCommands"/> class.
 /// </summary>
 /// <param name="discordRoleplays">The roleplay service.</param>
 /// <param name="feedback">The user feedback service.</param>
 /// <param name="interactivity">The interactivity service.</param>
 /// <param name="dedicatedChannels">The dedicated channel service.</param>
 /// <param name="roleplays">The low-level roleplay service.</param>
 public RoleplayCommands
 (
     RoleplayDiscordService discordRoleplays,
     UserFeedbackService feedback,
     InteractivityService interactivity,
     DedicatedChannelService dedicatedChannels,
     RoleplayService roleplays
 )
 {
     _discordRoleplays  = discordRoleplays;
     _feedback          = feedback;
     _interactivity     = interactivity;
     _dedicatedChannels = dedicatedChannels;
     _roleplays         = roleplays;
 }
コード例 #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayDiscordService"/> class.
 /// </summary>
 /// <param name="roleplays">The roleplay service.</param>
 /// <param name="dedicatedChannels">The dedicated channel service.</param>
 /// <param name="users">The user service.</param>
 /// <param name="servers">The server service.</param>
 /// <param name="guildAPI">The guild API.</param>
 /// <param name="channelAPI">The channel API.</param>
 public RoleplayDiscordService
 (
     RoleplayService roleplays,
     DedicatedChannelService dedicatedChannels,
     UserService users,
     ServerService servers,
     IDiscordRestGuildAPI guildAPI,
     IDiscordRestChannelAPI channelAPI
 )
 {
     _roleplays         = roleplays;
     _dedicatedChannels = dedicatedChannels;
     _users             = users;
     _servers           = servers;
     _guildAPI          = guildAPI;
     _channelAPI        = channelAPI;
 }
コード例 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoleplayCommands"/> class.
 /// </summary>
 /// <param name="database">A database context from the context pool.</param>
 /// <param name="roleplays">The roleplay service.</param>
 /// <param name="feedback">The user feedback service.</param>
 public RoleplayCommands(GlobalInfoContext database, RoleplayService roleplays, UserFeedbackService feedback)
 {
     this.Database  = database;
     this.Roleplays = roleplays;
     this.Feedback  = feedback;
 }
コード例 #11
0
        // ReSharper restore PrivateFieldCanBeConvertedToLocalVariable

        /// <summary>
        /// Initializes a new instance of the <see cref="AmbassadorClient"/> class.
        /// </summary>
        /// <param name="content">The content service.</param>
        public AmbassadorClient([NotNull] ContentService content)
        {
            this.Client = Type.GetType("Mono.Runtime") is null
                                ? new DiscordSocketClient()
                                : new DiscordSocketClient(new DiscordSocketConfig {
                WebSocketProvider = () => new WebSocketSharpProvider()
            });

            this.Client.Log += OnDiscordLogEvent;

            this.Commands      = new CommandService();
            this.Commands.Log += OnDiscordLogEvent;

            this.DiscordIntegration = new DiscordService();
            this.Content            = content;
            this.Commands           = new CommandService();
            this.OwnedEntities      = new OwnedEntityService();
            this.Roleplays          = new RoleplayService(this.Commands, this.OwnedEntities);
            this.Transformation     = new TransformationService(this.Content);

            this.Characters = new CharacterService(this.Commands, this.OwnedEntities, this.Content, this.Transformation);
            this.Characters.DiscoverPronounProviders();

            this.Feedback    = new UserFeedbackService();
            this.Dossiers    = new DossierService(this.Content);
            this.Interactive = new InteractiveService(this.Client);

            this.Lua   = new LuaService(this.Content);
            this.Kinks = new KinkService(this.Feedback);

            this.Permissions = new PermissionService();

            this.Privacy = new PrivacyService();

            this.Services = new ServiceCollection()
                            .AddSingleton(this.Client)
                            .AddSingleton(this.DiscordIntegration)
                            .AddSingleton(this.Content)
                            .AddSingleton(this.Commands)
                            .AddSingleton(this.Roleplays)
                            .AddSingleton(this.Characters)
                            .AddSingleton(this.Feedback)
                            .AddSingleton(this.Dossiers)
                            .AddSingleton(this.Interactive)
                            .AddSingleton(this.Transformation)
                            .AddSingleton(this.Lua)
                            .AddSingleton(this.Kinks)
                            .AddSingleton(this.Permissions)
                            .AddSingleton(this.Privacy)
                            .AddDbContextPool <GlobalInfoContext>(builder => GlobalInfoContext.ConfigureOptions(builder))
                            .BuildServiceProvider();

            this.Transformation = this.Transformation
                                  .WithDescriptionBuilder
                                  (
                ActivatorUtilities.CreateInstance <TransformationDescriptionBuilder>(this.Services)
                                  );

            this.Client.MessageReceived += OnMessageReceived;
            this.Client.MessageUpdated  += OnMessageUpdated;
        }