Initial example with 2 commands of the new permission system
This commit is contained in:
		
							
								
								
									
										587
									
								
								src/NadekoBot/Migrations/20160920004320_second.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										587
									
								
								src/NadekoBot/Migrations/20160920004320_second.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,587 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using Microsoft.EntityFrameworkCore;
 | 
				
			||||||
 | 
					using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
				
			||||||
 | 
					using Microsoft.EntityFrameworkCore.Metadata;
 | 
				
			||||||
 | 
					using Microsoft.EntityFrameworkCore.Migrations;
 | 
				
			||||||
 | 
					using NadekoBot.Services.Database.Impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NadekoBot.Migrations
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    [DbContext(typeof(NadekoSqliteContext))]
 | 
				
			||||||
 | 
					    [Migration("20160920004320_second")]
 | 
				
			||||||
 | 
					    partial class second
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            modelBuilder
 | 
				
			||||||
 | 
					                .HasAnnotation("ProductVersion", "1.0.0-rtm-21431");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.BlacklistItem", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ItemId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("BlacklistItem");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.BotConfig", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("BufferSize");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<float>("CurrencyGenerationChance");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("CurrencyGenerationCooldown");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("CurrencyName");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("CurrencyPluralName");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("CurrencySign");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("DontJoinServers");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("ForwardMessages");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("ForwardToAllOwners");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("RemindMessageFormat");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("RotatingStatuses");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("BotConfig");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.ClashCaller", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("BaseDestroyed");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("CallUser");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("ClashWarId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("Stars");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<DateTime>("TimeAdded");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("ClashWarId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("ClashCallers");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.ClashWar", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("EnemyClan");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GuildId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("Size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<DateTime>("StartedAt");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("WarState");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("ClashOfClans");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.ConvertUnit", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("InternalTrigger");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<decimal>("Modifier");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UnitType");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("ConversionUnits");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Currency", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<long>("Amount");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("UserId")
 | 
				
			||||||
 | 
					                        .IsUnique();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Currency");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Donator", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("Amount");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("UserId")
 | 
				
			||||||
 | 
					                        .IsUnique();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Donators");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.EightBallResponse", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("EightBallResponses");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.FollowedStream", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("GuildConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GuildId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("LastStatus");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("Type");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Username");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("GuildConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("FollowedStream");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.GuildConfig", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("AutoAssignRoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("AutoDeleteByeMessages");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("AutoDeleteGreetMessages");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("AutoDeleteGreetMessagesTimer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ByeMessageChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ChannelByeMessageText");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ChannelGreetMessageText");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<float>("DefaultMusicVolume");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("DeleteMessageOnCommand");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("DmGreetMessageText");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("ExclusiveSelfAssignedRoles");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong?>("GenerateCurrencyChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GreetMessageChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GuildId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("LogSettingId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("SendChannelByeMessage");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("SendChannelGreetMessage");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("SendDmGreetMessage");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("VoicePlusTextEnabled");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("GuildId")
 | 
				
			||||||
 | 
					                        .IsUnique();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("LogSettingId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("GuildConfigs");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredLogChannel", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("LogSettingId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("LogSettingId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("IgnoredLogChannels");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredVoicePresenceChannel", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("LogSettingId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("LogSettingId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("IgnoredVoicePresenceCHannels");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.LogSetting", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("ChannelCreated");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("ChannelDestroyed");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("ChannelUpdated");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("IsLogging");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("LogUserPresence");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("LogVoicePresence");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("MessageDeleted");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("MessageReceived");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("MessageUpdated");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("UserBanned");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("UserJoined");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("UserLeft");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("UserPresenceChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("UserUnbanned");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("UserUpdated");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("VoicePresenceChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("LogSettings");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.ModulePrefix", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ModuleName");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Prefix");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("ModulePrefixes");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Command");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("GuildConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Module");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("State");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Target");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("TargetType");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("GuildConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Permission");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Status");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("PlayingStatus");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Quote", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("AuthorId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("AuthorName")
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GuildId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Keyword")
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Text")
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Quotes");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.RaceAnimal", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Icon");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("BotConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("RaceAnimals");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Reminder", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("IsPrivate");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Message");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ServerId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<DateTime>("When");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Reminders");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Repeater", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("ChannelId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GuildId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<TimeSpan>("Interval");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Message");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("ChannelId")
 | 
				
			||||||
 | 
					                        .IsUnique();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Repeaters");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.SelfAssignedRole", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("GuildId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<ulong>("RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("GuildId", "RoleId")
 | 
				
			||||||
 | 
					                        .IsUnique();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("SelfAssignableRoles");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.TypingArticle", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Author");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("TypingArticles");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.BlacklistItem", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
 | 
				
			||||||
 | 
					                        .WithMany("Blacklist")
 | 
				
			||||||
 | 
					                        .HasForeignKey("BotConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.ClashCaller", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.ClashWar", "ClashWar")
 | 
				
			||||||
 | 
					                        .WithMany("Bases")
 | 
				
			||||||
 | 
					                        .HasForeignKey("ClashWarId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.EightBallResponse", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
 | 
				
			||||||
 | 
					                        .WithMany("EightBallResponses")
 | 
				
			||||||
 | 
					                        .HasForeignKey("BotConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.FollowedStream", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig")
 | 
				
			||||||
 | 
					                        .WithMany("FollowedStreams")
 | 
				
			||||||
 | 
					                        .HasForeignKey("GuildConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.GuildConfig", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.LogSetting", "LogSetting")
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("LogSettingId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredLogChannel", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.LogSetting", "LogSetting")
 | 
				
			||||||
 | 
					                        .WithMany("IgnoredChannels")
 | 
				
			||||||
 | 
					                        .HasForeignKey("LogSettingId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredVoicePresenceChannel", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.LogSetting", "LogSetting")
 | 
				
			||||||
 | 
					                        .WithMany("IgnoredVoicePresenceChannelIds")
 | 
				
			||||||
 | 
					                        .HasForeignKey("LogSettingId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.ModulePrefix", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig", "BotConfig")
 | 
				
			||||||
 | 
					                        .WithMany("ModulePrefixes")
 | 
				
			||||||
 | 
					                        .HasForeignKey("BotConfigId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig")
 | 
				
			||||||
 | 
					                        .WithMany("Permissions")
 | 
				
			||||||
 | 
					                        .HasForeignKey("GuildConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
 | 
				
			||||||
 | 
					                        .WithMany("RotatingStatusMessages")
 | 
				
			||||||
 | 
					                        .HasForeignKey("BotConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.RaceAnimal", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
 | 
				
			||||||
 | 
					                        .WithMany("RaceAnimals")
 | 
				
			||||||
 | 
					                        .HasForeignKey("BotConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										47
									
								
								src/NadekoBot/Migrations/20160920004320_second.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/NadekoBot/Migrations/20160920004320_second.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using Microsoft.EntityFrameworkCore.Migrations;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NadekoBot.Migrations
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public partial class second : Migration
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        protected override void Up(MigrationBuilder migrationBuilder)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "Permission",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = table.Column<int>(nullable: false)
 | 
				
			||||||
 | 
					                        .Annotation("Autoincrement", true),
 | 
				
			||||||
 | 
					                    Command = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    GuildConfigId = table.Column<int>(nullable: true),
 | 
				
			||||||
 | 
					                    Module = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    State = table.Column<bool>(nullable: false),
 | 
				
			||||||
 | 
					                    Target = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    TargetType = table.Column<int>(nullable: false)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_Permission", x => x.Id);
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_Permission_GuildConfigs_GuildConfigId",
 | 
				
			||||||
 | 
					                        column: x => x.GuildConfigId,
 | 
				
			||||||
 | 
					                        principalTable: "GuildConfigs",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Restrict);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "IX_Permission_GuildConfigId",
 | 
				
			||||||
 | 
					                table: "Permission",
 | 
				
			||||||
 | 
					                column: "GuildConfigId");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        protected override void Down(MigrationBuilder migrationBuilder)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "Permission");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -348,6 +348,30 @@ namespace NadekoBot.Migrations
 | 
				
			|||||||
                    b.ToTable("ModulePrefixes");
 | 
					                    b.ToTable("ModulePrefixes");
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Command");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int?>("GuildConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Module");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("State");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Target");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("TargetType");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("GuildConfigId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Permission");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<int>("Id")
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
@@ -537,6 +561,13 @@ namespace NadekoBot.Migrations
 | 
				
			|||||||
                        .OnDelete(DeleteBehavior.Cascade);
 | 
					                        .OnDelete(DeleteBehavior.Cascade);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig")
 | 
				
			||||||
 | 
					                        .WithMany("Permissions")
 | 
				
			||||||
 | 
					                        .HasForeignKey("GuildConfigId");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
 | 
					            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
 | 
					                    b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,8 @@ using Discord.Commands;
 | 
				
			|||||||
using Discord.WebSocket;
 | 
					using Discord.WebSocket;
 | 
				
			||||||
using NadekoBot.Services;
 | 
					using NadekoBot.Services;
 | 
				
			||||||
using Discord;
 | 
					using Discord;
 | 
				
			||||||
 | 
					using NadekoBot.Services.Database;
 | 
				
			||||||
 | 
					using NadekoBot.Services.Database.Models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace NadekoBot.Modules.Permissions
 | 
					namespace NadekoBot.Modules.Permissions
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -24,7 +26,18 @@ namespace NadekoBot.Modules.Permissions
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            var channel = (ITextChannel)imsg.Channel;
 | 
					            var channel = (ITextChannel)imsg.Channel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await channel.SendMessageAsync($"{command.Text} {action.Value} {user}");
 | 
					            using (var uow = DbHandler.UnitOfWork())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                uow.GuildConfigs.For(channel.Guild.Id).Permissions.Add(new Permission
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    TargetType = PermissionType.User,
 | 
				
			||||||
 | 
					                    Target = user.Id.ToString(),
 | 
				
			||||||
 | 
					                    Command = command.Text.ToLowerInvariant(),
 | 
				
			||||||
 | 
					                    State = action.Value,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                await uow.CompleteAsync();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            await channel.SendMessageAsync($"{(action.Value ? "Allowed" : "Denied")} usage of `{command.Text}` command for `{user}` user.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [LocalizedCommand, LocalizedDescription, LocalizedSummary, LocalizedAlias]
 | 
					        [LocalizedCommand, LocalizedDescription, LocalizedSummary, LocalizedAlias]
 | 
				
			||||||
@@ -33,7 +46,18 @@ namespace NadekoBot.Modules.Permissions
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            var channel = (ITextChannel)imsg.Channel;
 | 
					            var channel = (ITextChannel)imsg.Channel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await channel.SendMessageAsync($"{module.Name} {action.Value} {user}");
 | 
					            using (var uow = DbHandler.UnitOfWork())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                uow.GuildConfigs.For(channel.Guild.Id).Permissions.Add(new Permission
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    TargetType = PermissionType.User,
 | 
				
			||||||
 | 
					                    Target = user.Id.ToString(),
 | 
				
			||||||
 | 
					                    Module = module.Name.ToLowerInvariant(),
 | 
				
			||||||
 | 
					                    State = action.Value,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                await uow.CompleteAsync();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            await channel.SendMessageAsync($"{(action.Value ? "Allowed" : "Denied")} usage of `{module.Name}` module for `{user}` user.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -101,7 +101,7 @@ namespace NadekoBot.Modules.Searches
 | 
				
			|||||||
                        cachedStatuses.TryAdd(hitboxUrl, result);
 | 
					                        cachedStatuses.TryAdd(hitboxUrl, result);
 | 
				
			||||||
                        return result;
 | 
					                        return result;
 | 
				
			||||||
                    case FollowedStream.FollowedStreamType.Twitch:
 | 
					                    case FollowedStream.FollowedStreamType.Twitch:
 | 
				
			||||||
                        var twitchUrl = $"https://api.twitch.tv/kraken/streams/{Uri.EscapeUriString(stream.Username)}";
 | 
					                        var twitchUrl = $"https://api.twitch.tv/kraken/streams/{Uri.EscapeUriString(stream.Username)}?client_id=67w6z9i09xv2uoojdm9l0wsyph4hxo6";
 | 
				
			||||||
                        if (checkCache && cachedStatuses.TryGetValue(twitchUrl, out result))
 | 
					                        if (checkCache && cachedStatuses.TryGetValue(twitchUrl, out result))
 | 
				
			||||||
                            return result;
 | 
					                            return result;
 | 
				
			||||||
                        using (var http = new HttpClient())
 | 
					                        using (var http = new HttpClient())
 | 
				
			||||||
@@ -110,7 +110,7 @@ namespace NadekoBot.Modules.Searches
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        data = JObject.Parse(response);
 | 
					                        data = JObject.Parse(response);
 | 
				
			||||||
                        isLive = !string.IsNullOrWhiteSpace(data["stream"].ToString());
 | 
					                        isLive = !string.IsNullOrWhiteSpace(data["stream"].ToString());
 | 
				
			||||||
                        result = new Tuple<bool, string>(isLive, isLive ? data["stream"]["viewers"].ToString() : "0");
 | 
					                        result = new Tuple<bool, string>(isLive, isLive ? data["stream"]["viewers"].ToString() : stream.Username);
 | 
				
			||||||
                        cachedStatuses.TryAdd(twitchUrl, result);
 | 
					                        cachedStatuses.TryAdd(twitchUrl, result);
 | 
				
			||||||
                        return result;
 | 
					                        return result;
 | 
				
			||||||
                    case FollowedStream.FollowedStreamType.Beam:
 | 
					                    case FollowedStream.FollowedStreamType.Beam:
 | 
				
			||||||
@@ -225,7 +225,11 @@ namespace NadekoBot.Modules.Searches
 | 
				
			|||||||
                    }));
 | 
					                    }));
 | 
				
			||||||
                    if (streamStatus.Item1)
 | 
					                    if (streamStatus.Item1)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        await channel.SendMessageAsync($"`Streamer {streamStatus.Item2} is online.`");
 | 
					                        await channel.SendMessageAsync($"`Streamer {username} is online with {streamStatus.Item2}.`");
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        await channel.SendMessageAsync($"`Streamer {username} is offline.`");
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                catch
 | 
					                catch
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,5 +41,8 @@ namespace NadekoBot.Services.Database.Models
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        //currencyGeneration
 | 
					        //currencyGeneration
 | 
				
			||||||
        public ulong? GenerateCurrencyChannelId { get; set; }
 | 
					        public ulong? GenerateCurrencyChannelId { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //permissions
 | 
				
			||||||
 | 
					        public List<Permission> Permissions { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								src/NadekoBot/Services/Database/Models/Permission.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/NadekoBot/Services/Database/Models/Permission.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NadekoBot.Services.Database.Models
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class Permission : DbEntity
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public PermissionType TargetType { get; set; }
 | 
				
			||||||
 | 
					        public string Command { get; set; } = null;
 | 
				
			||||||
 | 
					        public string Module { get; set; } = null;
 | 
				
			||||||
 | 
					        public bool State { get; set; }
 | 
				
			||||||
 | 
					        public string Target { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public enum PermissionType
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        User,
 | 
				
			||||||
 | 
					        Channel,
 | 
				
			||||||
 | 
					        Role
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user