Bot config, playing statuses, a LOT of other stuff
This commit is contained in:
parent
9b292f3bb8
commit
64bfb5f0d6
@ -8,7 +8,7 @@ using NadekoBot.Services.Database.Impl;
|
||||
namespace NadekoBot.Migrations
|
||||
{
|
||||
[DbContext(typeof(NadekoSqliteContext))]
|
||||
[Migration("20160826234229_first")]
|
||||
[Migration("20160828000228_first")]
|
||||
partial class first
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -16,6 +16,50 @@ namespace NadekoBot.Migrations
|
||||
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<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")
|
||||
@ -79,6 +123,22 @@ namespace NadekoBot.Migrations
|
||||
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("EightBallResponse");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.GuildConfig", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
@ -110,8 +170,6 @@ namespace NadekoBot.Migrations
|
||||
|
||||
b.Property<ulong>("GuildId");
|
||||
|
||||
b.Property<bool>("RotatingStatuses");
|
||||
|
||||
b.Property<bool>("SendChannelByeMessage");
|
||||
|
||||
b.Property<bool>("SendChannelGreetMessage");
|
||||
@ -126,18 +184,36 @@ namespace NadekoBot.Migrations
|
||||
b.ToTable("GuildConfigs");
|
||||
});
|
||||
|
||||
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("ModulePrefix");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd();
|
||||
|
||||
b.Property<int?>("GuildConfigId");
|
||||
b.Property<int?>("BotConfigId");
|
||||
|
||||
b.Property<string>("Status");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GuildConfigId");
|
||||
b.HasIndex("BotConfigId");
|
||||
|
||||
b.ToTable("PlayingStatus");
|
||||
});
|
||||
@ -165,6 +241,24 @@ namespace NadekoBot.Migrations
|
||||
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("RaceAnimal");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.Reminder", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
@ -204,6 +298,13 @@ namespace NadekoBot.Migrations
|
||||
b.ToTable("SelfAssignableRoles");
|
||||
});
|
||||
|
||||
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")
|
||||
@ -212,11 +313,32 @@ namespace NadekoBot.Migrations
|
||||
.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.ModulePrefix", b =>
|
||||
{
|
||||
b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
|
||||
.WithMany("ModulePrefixes")
|
||||
.HasForeignKey("BotConfigId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
|
||||
{
|
||||
b.HasOne("NadekoBot.Services.Database.Models.GuildConfig")
|
||||
b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
|
||||
.WithMany("RotatingStatusMessages")
|
||||
.HasForeignKey("GuildConfigId");
|
||||
.HasForeignKey("BotConfigId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.RaceAnimal", b =>
|
||||
{
|
||||
b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
|
||||
.WithMany("RaceAnimals")
|
||||
.HasForeignKey("BotConfigId");
|
||||
});
|
||||
}
|
||||
}
|
@ -8,6 +8,27 @@ namespace NadekoBot.Migrations
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "BotConfig",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
BufferSize = table.Column<ulong>(nullable: false),
|
||||
CurrencyName = table.Column<string>(nullable: true),
|
||||
CurrencyPluralName = table.Column<string>(nullable: true),
|
||||
CurrencySign = table.Column<string>(nullable: true),
|
||||
DontJoinServers = table.Column<bool>(nullable: false),
|
||||
ForwardMessages = table.Column<bool>(nullable: false),
|
||||
ForwardToAllOwners = table.Column<bool>(nullable: false),
|
||||
RemindMessageFormat = table.Column<string>(nullable: true),
|
||||
RotatingStatuses = table.Column<bool>(nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_BotConfig", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "ClashOfClans",
|
||||
columns: table => new
|
||||
@ -60,7 +81,6 @@ namespace NadekoBot.Migrations
|
||||
ExclusiveSelfAssignedRoles = table.Column<bool>(nullable: false),
|
||||
GreetMessageChannelId = table.Column<ulong>(nullable: false),
|
||||
GuildId = table.Column<ulong>(nullable: false),
|
||||
RotatingStatuses = table.Column<bool>(nullable: false),
|
||||
SendChannelByeMessage = table.Column<bool>(nullable: false),
|
||||
SendChannelGreetMessage = table.Column<bool>(nullable: false),
|
||||
SendDmGreetMessage = table.Column<bool>(nullable: false)
|
||||
@ -119,6 +139,108 @@ namespace NadekoBot.Migrations
|
||||
table.PrimaryKey("PK_SelfAssignableRoles", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "BlacklistItem",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
BotConfigId = table.Column<int>(nullable: true),
|
||||
ItemId = table.Column<ulong>(nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_BlacklistItem", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_BlacklistItem_BotConfig_BotConfigId",
|
||||
column: x => x.BotConfigId,
|
||||
principalTable: "BotConfig",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "EightBallResponse",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
BotConfigId = table.Column<int>(nullable: true),
|
||||
Text = table.Column<string>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_EightBallResponse", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_EightBallResponse_BotConfig_BotConfigId",
|
||||
column: x => x.BotConfigId,
|
||||
principalTable: "BotConfig",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "ModulePrefix",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
BotConfigId = table.Column<int>(nullable: true),
|
||||
ModuleName = table.Column<string>(nullable: true),
|
||||
Prefix = table.Column<string>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_ModulePrefix", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_ModulePrefix_BotConfig_BotConfigId",
|
||||
column: x => x.BotConfigId,
|
||||
principalTable: "BotConfig",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "PlayingStatus",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
BotConfigId = table.Column<int>(nullable: true),
|
||||
Status = table.Column<string>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_PlayingStatus", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_PlayingStatus_BotConfig_BotConfigId",
|
||||
column: x => x.BotConfigId,
|
||||
principalTable: "BotConfig",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "RaceAnimal",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
BotConfigId = table.Column<int>(nullable: true),
|
||||
Icon = table.Column<string>(nullable: true),
|
||||
Name = table.Column<string>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_RaceAnimal", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_RaceAnimal_BotConfig_BotConfigId",
|
||||
column: x => x.BotConfigId,
|
||||
principalTable: "BotConfig",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "ClashCallers",
|
||||
columns: table => new
|
||||
@ -142,25 +264,10 @@ namespace NadekoBot.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "PlayingStatus",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("Autoincrement", true),
|
||||
GuildConfigId = table.Column<int>(nullable: true),
|
||||
Status = table.Column<string>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_PlayingStatus", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_PlayingStatus_GuildConfigs_GuildConfigId",
|
||||
column: x => x.GuildConfigId,
|
||||
principalTable: "GuildConfigs",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_BlacklistItem_BotConfigId",
|
||||
table: "BlacklistItem",
|
||||
column: "BotConfigId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_ClashCallers_ClashWarId",
|
||||
@ -173,6 +280,11 @@ namespace NadekoBot.Migrations
|
||||
column: "UserId",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_EightBallResponse_BotConfigId",
|
||||
table: "EightBallResponse",
|
||||
column: "BotConfigId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_GuildConfigs_GuildId",
|
||||
table: "GuildConfigs",
|
||||
@ -180,9 +292,19 @@ namespace NadekoBot.Migrations
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PlayingStatus_GuildConfigId",
|
||||
name: "IX_ModulePrefix_BotConfigId",
|
||||
table: "ModulePrefix",
|
||||
column: "BotConfigId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PlayingStatus_BotConfigId",
|
||||
table: "PlayingStatus",
|
||||
column: "GuildConfigId");
|
||||
column: "BotConfigId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_RaceAnimal_BotConfigId",
|
||||
table: "RaceAnimal",
|
||||
column: "BotConfigId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_SelfAssignableRoles_GuildId_RoleId",
|
||||
@ -193,18 +315,33 @@ namespace NadekoBot.Migrations
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "BlacklistItem");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "ClashCallers");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Donators");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "EightBallResponse");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "GuildConfigs");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "ModulePrefix");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "PlayingStatus");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Quotes");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "RaceAnimal");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Reminders");
|
||||
|
||||
@ -215,7 +352,7 @@ namespace NadekoBot.Migrations
|
||||
name: "ClashOfClans");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "GuildConfigs");
|
||||
name: "BotConfig");
|
||||
}
|
||||
}
|
||||
}
|
@ -15,6 +15,50 @@ namespace NadekoBot.Migrations
|
||||
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<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")
|
||||
@ -78,6 +122,22 @@ namespace NadekoBot.Migrations
|
||||
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("EightBallResponse");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.GuildConfig", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
@ -109,8 +169,6 @@ namespace NadekoBot.Migrations
|
||||
|
||||
b.Property<ulong>("GuildId");
|
||||
|
||||
b.Property<bool>("RotatingStatuses");
|
||||
|
||||
b.Property<bool>("SendChannelByeMessage");
|
||||
|
||||
b.Property<bool>("SendChannelGreetMessage");
|
||||
@ -125,18 +183,36 @@ namespace NadekoBot.Migrations
|
||||
b.ToTable("GuildConfigs");
|
||||
});
|
||||
|
||||
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("ModulePrefix");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd();
|
||||
|
||||
b.Property<int?>("GuildConfigId");
|
||||
b.Property<int?>("BotConfigId");
|
||||
|
||||
b.Property<string>("Status");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GuildConfigId");
|
||||
b.HasIndex("BotConfigId");
|
||||
|
||||
b.ToTable("PlayingStatus");
|
||||
});
|
||||
@ -164,6 +240,24 @@ namespace NadekoBot.Migrations
|
||||
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("RaceAnimal");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.Reminder", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
@ -203,6 +297,13 @@ namespace NadekoBot.Migrations
|
||||
b.ToTable("SelfAssignableRoles");
|
||||
});
|
||||
|
||||
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")
|
||||
@ -211,11 +312,32 @@ namespace NadekoBot.Migrations
|
||||
.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.ModulePrefix", b =>
|
||||
{
|
||||
b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
|
||||
.WithMany("ModulePrefixes")
|
||||
.HasForeignKey("BotConfigId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.PlayingStatus", b =>
|
||||
{
|
||||
b.HasOne("NadekoBot.Services.Database.Models.GuildConfig")
|
||||
b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
|
||||
.WithMany("RotatingStatusMessages")
|
||||
.HasForeignKey("GuildConfigId");
|
||||
.HasForeignKey("BotConfigId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NadekoBot.Services.Database.Models.RaceAnimal", b =>
|
||||
{
|
||||
b.HasOne("NadekoBot.Services.Database.Models.BotConfig")
|
||||
.WithMany("RaceAnimals")
|
||||
.HasForeignKey("BotConfigId");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace NadekoBot.Modules.Administration
|
||||
[Module(".", AppendSpace = false)]
|
||||
public partial class Administration : DiscordModule
|
||||
{
|
||||
public Administration(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public Administration(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ using NadekoBot.Attributes;
|
||||
using NadekoBot.Services;
|
||||
using NadekoBot.Services.Database;
|
||||
using NadekoBot.Services.Database.Models;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -20,6 +21,52 @@ namespace NadekoBot.Modules.Administration
|
||||
[Group]
|
||||
public class PlayingRotateCommands
|
||||
{
|
||||
private Logger _log { get; }
|
||||
|
||||
public PlayingRotateCommands()
|
||||
{
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
Task.Run(async () =>
|
||||
{
|
||||
var index = 0;
|
||||
do
|
||||
{
|
||||
try
|
||||
{
|
||||
BotConfig conf;
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
conf = uow.BotConfig.GetOrCreate();
|
||||
}
|
||||
|
||||
if (!conf.RotatingStatuses)
|
||||
continue;
|
||||
else
|
||||
{
|
||||
if (index >= conf.RotatingStatusMessages.Count)
|
||||
index = 0;
|
||||
|
||||
if (!conf.RotatingStatusMessages.Any())
|
||||
continue;
|
||||
|
||||
await NadekoBot.Client
|
||||
.GetCurrentUser()
|
||||
.ModifyStatusAsync(mpp => mpp.Game = new Game(conf.RotatingStatusMessages[index++].Status))
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log.Warn("Rotating playing status errored.\n" + ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
await Task.Delay(15000);
|
||||
}
|
||||
} while (true);
|
||||
});
|
||||
}
|
||||
|
||||
public static Dictionary<string, Func<string>> PlayingPlaceholders { get; } =
|
||||
new Dictionary<string, Func<string>> {
|
||||
{"%servers%", () => NadekoBot.Client.GetGuilds().Count().ToString()},
|
||||
@ -45,28 +92,34 @@ namespace NadekoBot.Modules.Administration
|
||||
{
|
||||
var channel = (ITextChannel)imsg.Channel;
|
||||
|
||||
bool status;
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
var config = uow.GuildConfigs.For(channel.Guild.Id);
|
||||
var config = uow.BotConfig.GetOrCreate();
|
||||
|
||||
config.RotatingStatuses = !config.RotatingStatuses;
|
||||
status = config.RotatingStatuses = !config.RotatingStatuses;
|
||||
await uow.CompleteAsync();
|
||||
}
|
||||
if (status)
|
||||
await channel.SendMessageAsync("`Rotating playing status enabled.`");
|
||||
else
|
||||
await channel.SendMessageAsync("`Rotating playing status disabled.`");
|
||||
}
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task AddPlaying(IMessage imsg, string status)
|
||||
public async Task AddPlaying(IMessage imsg, [Remainder] string status)
|
||||
{
|
||||
var channel = (ITextChannel)imsg.Channel;
|
||||
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
var config = uow.GuildConfigs.For(channel.Guild.Id);
|
||||
var config = uow.BotConfig.GetOrCreate();
|
||||
config.RotatingStatusMessages.Add(new PlayingStatus { Status = status });
|
||||
await uow.CompleteAsync();
|
||||
}
|
||||
|
||||
await channel.SendMessageAsync("`Added.`").ConfigureAwait(false);
|
||||
}
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
@ -78,7 +131,7 @@ namespace NadekoBot.Modules.Administration
|
||||
List<PlayingStatus> statuses;
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
statuses = uow.GuildConfigs.For(channel.Guild.Id).RotatingStatusMessages;
|
||||
statuses = uow.BotConfig.GetOrCreate().RotatingStatusMessages;
|
||||
}
|
||||
|
||||
if (!statuses.Any())
|
||||
@ -86,7 +139,7 @@ namespace NadekoBot.Modules.Administration
|
||||
else
|
||||
{
|
||||
var i = 1;
|
||||
await channel.SendMessageAsync($"{imsg.Author.Mention} Here is a list of rotating statuses:\n" + string.Join("\n", statuses.Select(rs => $"`{i++}.` {rs.Status}\n")));
|
||||
await channel.SendMessageAsync($"{imsg.Author.Mention} `Here is a list of rotating statuses:`\n\n\t" + string.Join("\n\t", statuses.Select(rs => $"`{i++}.` {rs.Status}")));
|
||||
}
|
||||
|
||||
}
|
||||
@ -96,17 +149,20 @@ namespace NadekoBot.Modules.Administration
|
||||
public async Task RemovePlaying(IMessage imsg, int index)
|
||||
{
|
||||
var channel = (ITextChannel)imsg.Channel;
|
||||
index -= 1;
|
||||
|
||||
string msg = "";
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
var config = uow.GuildConfigs.For(channel.Guild.Id);
|
||||
var config = uow.BotConfig.GetOrCreate();
|
||||
|
||||
if (index >= config.RotatingStatusMessages.Count)
|
||||
return;
|
||||
|
||||
msg = config.RotatingStatusMessages[index].Status;
|
||||
config.RotatingStatusMessages.RemoveAt(index);
|
||||
await uow.CompleteAsync();
|
||||
}
|
||||
await channel.SendMessageAsync($"`Removed the the playing message:` {msg}").ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
@ -62,7 +62,7 @@ namespace NadekoBot.Modules.Administration
|
||||
success = uow.SelfAssignedRoles.DeleteByGuildAndRoleId(role.GuildId, role.Id);
|
||||
await uow.CompleteAsync();
|
||||
}
|
||||
if (success)
|
||||
if (!success)
|
||||
{
|
||||
await channel.SendMessageAsync(":anger:That role is not self-assignable.").ConfigureAwait(false);
|
||||
return;
|
||||
@ -183,7 +183,7 @@ namespace NadekoBot.Modules.Administration
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task Iamnot(IMessage imsg, IRole role)
|
||||
public async Task Iamnot(IMessage imsg, [Remainder] IRole role)
|
||||
{
|
||||
var channel = (ITextChannel)imsg.Channel;
|
||||
var guildUser = (IGuildUser)imsg.Author;
|
||||
|
@ -20,7 +20,7 @@ namespace NadekoBot.Modules.ClashOfClans
|
||||
{
|
||||
public static ConcurrentDictionary<ulong, List<ClashWar>> ClashWars { get; set; } = new ConcurrentDictionary<ulong, List<ClashWar>>();
|
||||
|
||||
public ClashOfClans(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public ClashOfClans(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
|
@ -10,15 +10,13 @@ namespace NadekoBot.Modules
|
||||
{
|
||||
protected ILocalization _l;
|
||||
protected CommandService _commands;
|
||||
protected IBotConfiguration _config;
|
||||
protected DiscordSocketClient _client;
|
||||
protected Logger _log;
|
||||
|
||||
public DiscordModule(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client)
|
||||
public DiscordModule(ILocalization loc, CommandService cmds, DiscordSocketClient client)
|
||||
{
|
||||
_l = loc;
|
||||
_commands = cmds;
|
||||
_config = config;
|
||||
_client = client;
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Attributes;
|
||||
using NadekoBot.Extensions;
|
||||
using NadekoBot.Services;
|
||||
using NadekoBot.Services.Database;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
@ -63,7 +65,7 @@ namespace NadekoBot.Modules.Gambling
|
||||
public class AnimalRace
|
||||
{
|
||||
|
||||
private ConcurrentQueue<string> animals = new ConcurrentQueue<string>(NadekoBot.Config.RaceAnimals.Shuffle());
|
||||
private ConcurrentQueue<string> animals { get; }
|
||||
|
||||
public bool Fail { get; internal set; }
|
||||
|
||||
@ -83,6 +85,13 @@ namespace NadekoBot.Modules.Gambling
|
||||
Fail = true;
|
||||
return;
|
||||
}
|
||||
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
animals = new ConcurrentQueue<string>(uow.BotConfig.GetOrCreate().RaceAnimals.Select(ra=>ra.Icon).Shuffle());
|
||||
}
|
||||
|
||||
|
||||
var cancelSource = new CancellationTokenSource();
|
||||
var token = cancelSource.Token;
|
||||
var fullgame = CheckForFullGameAsync(token);
|
||||
@ -184,7 +193,7 @@ namespace NadekoBot.Modules.Gambling
|
||||
var wonAmount = winner.AmountBet * (participants.Count - 1);
|
||||
//todo DB
|
||||
//await FlowersHandler.AddFlowersAsync(winner.User, "Won a Race", wonAmount).ConfigureAwait(false);
|
||||
await raceChannel.SendMessageAsync($"🏁 {winner.User.Mention} as {winner.Animal} **Won the race and {wonAmount}{NadekoBot.Config.Currency.Sign}!**").ConfigureAwait(false);
|
||||
await raceChannel.SendMessageAsync($"🏁 {winner.User.Mention} as {winner.Animal} **Won the race and {wonAmount}{CurrencySign}!**").ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -228,7 +237,7 @@ namespace NadekoBot.Modules.Gambling
|
||||
return false;
|
||||
}
|
||||
participants.Add(p);
|
||||
await raceChannel.SendMessageAsync($"{u.Mention} **joined the race as a {p.Animal}" + (amount > 0 ? $" and bet {amount} {(amount == 1? NadekoBot.Config.Currency.Name: NadekoBot.Config.Currency.PluralName)}!**" : "**"));
|
||||
await raceChannel.SendMessageAsync($"{u.Mention} **joined the race as a {p.Animal}" + (amount > 0 ? $" and bet {amount} {(amount == 1? CurrencyName : CurrencyPluralName)}!**" : "**"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using NadekoBot.Services;
|
||||
using Discord.WebSocket;
|
||||
using NadekoBot.Services.Database;
|
||||
|
||||
//todo DB
|
||||
namespace NadekoBot.Modules.Gambling
|
||||
@ -15,8 +16,21 @@ namespace NadekoBot.Modules.Gambling
|
||||
[Module("$", AppendSpace = false)]
|
||||
public partial class Gambling : DiscordModule
|
||||
{
|
||||
public Gambling(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public static string CurrencyName { get; set; }
|
||||
public static string CurrencyPluralName { get; set; }
|
||||
public static string CurrencySign { get; set; }
|
||||
|
||||
public Gambling(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
var conf = uow.BotConfig.GetOrCreate();
|
||||
|
||||
CurrencyName = conf.CurrencyName;
|
||||
CurrencySign = conf.CurrencySign;
|
||||
CurrencyPluralName = conf.CurrencyPluralName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
|
@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using NadekoBot.Extensions;
|
||||
using Discord.WebSocket;
|
||||
using NadekoBot.Services.Database;
|
||||
|
||||
namespace NadekoBot.Modules.Games
|
||||
{
|
||||
@ -15,10 +16,16 @@ namespace NadekoBot.Modules.Games
|
||||
public partial class Games : DiscordModule
|
||||
{
|
||||
//todo DB
|
||||
private IEnumerable<string> _8BallResponses;
|
||||
public Games(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
private IEnumerable<string> _8BallResponses {
|
||||
get {
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
return uow.BotConfig.GetOrCreate().EightBallResponses.Select(ebr => ebr.Text);
|
||||
}
|
||||
}
|
||||
}
|
||||
public Games(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
_8BallResponses = config.EightBallResponses;
|
||||
}
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
|
@ -21,7 +21,7 @@ namespace NadekoBot.Modules.Help
|
||||
return str + String.Format(str, NadekoBot.Credentials.ClientId);
|
||||
}
|
||||
}
|
||||
public Help(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public Help(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ namespace NadekoBot.Modules.Music
|
||||
public const string MusicDataPath = "data/musicdata";
|
||||
private IGoogleApiService _google;
|
||||
|
||||
public Music(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client, IGoogleApiService google) : base(loc, cmds, config, client)
|
||||
public Music(ILocalization loc, CommandService cmds, DiscordSocketClient client, IGoogleApiService google) : base(loc, cmds, client)
|
||||
{
|
||||
//it can fail if its currenctly opened or doesn't exist. Either way i don't care
|
||||
try { Directory.Delete(MusicDataPath, true); } catch { }
|
||||
|
@ -18,7 +18,7 @@ namespace NadekoBot.Modules.NSFW
|
||||
[Module("~", AppendSpace = false)]
|
||||
public class NSFW : DiscordModule
|
||||
{
|
||||
public NSFW(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public NSFW(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ namespace NadekoBot.Modules.Games
|
||||
[Module(">", AppendSpace = false)]
|
||||
public partial class Pokemon : DiscordModule
|
||||
{
|
||||
public Pokemon(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public Pokemon(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ namespace NadekoBot.Modules.Searches
|
||||
{
|
||||
private IGoogleApiService _google { get; }
|
||||
|
||||
public Searches(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client, IGoogleApiService youtube) : base(loc, cmds, config, client)
|
||||
public Searches(ILocalization loc, CommandService cmds, DiscordSocketClient client, IGoogleApiService youtube) : base(loc, cmds, client)
|
||||
{
|
||||
_google = youtube;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ namespace NadekoBot.Modules.Translator
|
||||
[Module("~", AppendSpace = false)]
|
||||
public class Translator : DiscordModule
|
||||
{
|
||||
public Translator(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public Translator(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,8 @@ namespace NadekoBot.Modules.Utility
|
||||
Regex regex = new Regex(@"^(?:(?<months>\d)mo)?(?:(?<weeks>\d)w)?(?:(?<days>\d{1,2})d)?(?:(?<hours>\d{1,2})h)?(?:(?<minutes>\d{1,2})m)?$",
|
||||
RegexOptions.Compiled | RegexOptions.Multiline);
|
||||
|
||||
private string RemindMessageFormat { get; }
|
||||
|
||||
IDictionary<string, Func<Reminder, string>> replacements = new Dictionary<string, Func<Reminder, string>>
|
||||
{
|
||||
{ "%message%" , (r) => r.Message },
|
||||
@ -36,6 +38,8 @@ namespace NadekoBot.Modules.Utility
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
reminders = uow.Reminders.GetAll().ToList();
|
||||
|
||||
RemindMessageFormat = uow.BotConfig.GetOrCreate().RemindMessageFormat;
|
||||
}
|
||||
|
||||
foreach (var r in reminders)
|
||||
@ -74,7 +78,7 @@ namespace NadekoBot.Modules.Utility
|
||||
return;
|
||||
|
||||
await ch.SendMessageAsync(
|
||||
replacements.Aggregate(NadekoBot.Config.RemindMessageFormat,
|
||||
replacements.Aggregate(RemindMessageFormat,
|
||||
(cur, replace) => cur.Replace(replace.Key, replace.Value(r)))
|
||||
).ConfigureAwait(false); //it works trust me
|
||||
|
||||
|
@ -18,7 +18,7 @@ namespace NadekoBot.Modules.Utility
|
||||
[Module(".", AppendSpace = false)]
|
||||
public partial class Utility : DiscordModule
|
||||
{
|
||||
public Utility(ILocalization loc, CommandService cmds, IBotConfiguration config, DiscordSocketClient client) : base(loc, cmds, config, client)
|
||||
public Utility(ILocalization loc, CommandService cmds, DiscordSocketClient client) : base(loc, cmds, client)
|
||||
{
|
||||
|
||||
}
|
||||
@ -129,6 +129,19 @@ namespace NadekoBot.Modules.Utility
|
||||
}
|
||||
}
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task ChannelTopic(IMessage imsg)
|
||||
{
|
||||
var channel = (ITextChannel)imsg.Channel;
|
||||
|
||||
var topic = channel.Topic;
|
||||
if (string.IsNullOrWhiteSpace(topic))
|
||||
await channel.SendMessageAsync("`No topic set.`");
|
||||
else
|
||||
await channel.SendMessageAsync("`Topic:` " + topic);
|
||||
}
|
||||
|
||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task Stats(IMessage imsg)
|
||||
|
@ -20,7 +20,6 @@ namespace NadekoBot
|
||||
|
||||
public static CommandService Commands { get; private set; }
|
||||
public static DiscordSocketClient Client { get; private set; }
|
||||
public static BotConfiguration Config { get; private set; }
|
||||
public static Localization Localizer { get; private set; }
|
||||
public static BotCredentials Credentials { get; private set; }
|
||||
|
||||
@ -42,7 +41,6 @@ namespace NadekoBot
|
||||
//initialize Services
|
||||
Credentials = new BotCredentials();
|
||||
Commands = new CommandService();
|
||||
Config = new BotConfiguration();
|
||||
Localizer = new Localization();
|
||||
Google = new GoogleApiService();
|
||||
Stats = new StatsService(Client);
|
||||
@ -51,7 +49,6 @@ namespace NadekoBot
|
||||
//setup DI
|
||||
var depMap = new DependencyMap();
|
||||
depMap.Add<ILocalization>(Localizer);
|
||||
depMap.Add<IBotConfiguration>(Config);
|
||||
depMap.Add<DiscordSocketClient>(Client);
|
||||
depMap.Add<CommandService>(Commands);
|
||||
depMap.Add<IGoogleApiService>(Google);
|
||||
|
54
src/NadekoBot/Resources/CommandStrings.Designer.cs
generated
54
src/NadekoBot/Resources/CommandStrings.Designer.cs
generated
@ -6647,6 +6647,33 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to toggle whether the self-assigned roles should be exclusive.
|
||||
/// </summary>
|
||||
public static string tesar_desc {
|
||||
get {
|
||||
return ResourceManager.GetString("tesar_desc", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to `.tesar`.
|
||||
/// </summary>
|
||||
public static string tesar_summary {
|
||||
get {
|
||||
return ResourceManager.GetString("tesar_summary", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to tesar.
|
||||
/// </summary>
|
||||
public static string tesar_text {
|
||||
get {
|
||||
return ResourceManager.GetString("tesar_text", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Shows a current trivia leaderboard..
|
||||
/// </summary>
|
||||
@ -6674,33 +6701,6 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to toggle whether the self-assigned roles should be exclusive.
|
||||
/// </summary>
|
||||
public static string togglexclsar_desc {
|
||||
get {
|
||||
return ResourceManager.GetString("togglexclsar_desc", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to `.tesar`.
|
||||
/// </summary>
|
||||
public static string togglexclsar_summary {
|
||||
get {
|
||||
return ResourceManager.GetString("togglexclsar_summary", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to togglexclsar.
|
||||
/// </summary>
|
||||
public static string togglexclsar_text {
|
||||
get {
|
||||
return ResourceManager.GetString("togglexclsar_text", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Quits current trivia after current question..
|
||||
/// </summary>
|
||||
|
@ -405,13 +405,13 @@
|
||||
<data name="lsar_summary" xml:space="preserve">
|
||||
<value>`.lsar`</value>
|
||||
</data>
|
||||
<data name="togglexclsar_text" xml:space="preserve">
|
||||
<value>togglexclsar</value>
|
||||
<data name="tesar_text" xml:space="preserve">
|
||||
<value>tesar</value>
|
||||
</data>
|
||||
<data name="togglexclsar_desc" xml:space="preserve">
|
||||
<data name="tesar_desc" xml:space="preserve">
|
||||
<value>toggle whether the self-assigned roles should be exclusive</value>
|
||||
</data>
|
||||
<data name="togglexclsar_summary" xml:space="preserve">
|
||||
<data name="tesar_summary" xml:space="preserve">
|
||||
<value>`.tesar`</value>
|
||||
</data>
|
||||
<data name="iam_text" xml:space="preserve">
|
||||
|
@ -58,14 +58,5 @@ namespace NadekoBot.Resources {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to TESTING.
|
||||
/// </summary>
|
||||
public static string test {
|
||||
get {
|
||||
return ResourceManager.GetString("test", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -117,7 +117,4 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="test" xml:space="preserve">
|
||||
<value>TESTING</value>
|
||||
</data>
|
||||
</root>
|
@ -15,6 +15,7 @@ namespace NadekoBot.Services.Database
|
||||
IClashOfClansRepository ClashOfClans { get; }
|
||||
IReminderRepository Reminders { get; }
|
||||
ISelfAssignedRolesRepository SelfAssignedRoles { get; }
|
||||
IBotConfigRepository BotConfig { get; }
|
||||
|
||||
int Complete();
|
||||
Task<int> CompleteAsync();
|
||||
|
115
src/NadekoBot/Services/Database/Models/BotConfig.cs
Normal file
115
src/NadekoBot/Services/Database/Models/BotConfig.cs
Normal file
@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NadekoBot.Services.Database.Models
|
||||
{
|
||||
public class BotConfig : DbEntity
|
||||
{
|
||||
public HashSet<BlacklistItem> Blacklist { get; set; }
|
||||
public ulong BufferSize { get; set; } = 4000000;
|
||||
public bool DontJoinServers { get; set; } = false;
|
||||
public bool ForwardMessages { get; set; } = true;
|
||||
public bool ForwardToAllOwners { get; set; } = true;
|
||||
|
||||
public List<ModulePrefix> ModulePrefixes { get; set; } = new List<ModulePrefix>()
|
||||
{
|
||||
new ModulePrefix() { ModuleName="Administration", Prefix="." },
|
||||
new ModulePrefix() { ModuleName="Searches", Prefix="~" },
|
||||
new ModulePrefix() { ModuleName="NSFW", Prefix="~" },
|
||||
new ModulePrefix() { ModuleName="ClashOfClans", Prefix="," },
|
||||
new ModulePrefix() { ModuleName="Help", Prefix="-" },
|
||||
new ModulePrefix() { ModuleName="Music", Prefix="!!" },
|
||||
new ModulePrefix() { ModuleName="Trello", Prefix="trello" },
|
||||
new ModulePrefix() { ModuleName="Games", Prefix=">" },
|
||||
new ModulePrefix() { ModuleName="Gambling", Prefix="$" },
|
||||
new ModulePrefix() { ModuleName="Permissions", Prefix=";" },
|
||||
new ModulePrefix() { ModuleName="Pokemon", Prefix=">" },
|
||||
new ModulePrefix() { ModuleName="Utility", Prefix="." }
|
||||
};
|
||||
|
||||
public List<PlayingStatus> RotatingStatusMessages { get; set; } = new List<PlayingStatus>();
|
||||
|
||||
public bool RotatingStatuses { get; set; } = false;
|
||||
public string RemindMessageFormat { get; set; } = "❗⏰**I've been told to remind you to '%message%' now by %user%.**⏰❗";
|
||||
|
||||
|
||||
public string CurrencySign { get; set; } = "🌸";
|
||||
public string CurrencyName { get; set; } = "Nadeko Flower";
|
||||
public string CurrencyPluralName { get; set; } = "Nadeko Flowers";
|
||||
|
||||
public List<EightBallResponse> EightBallResponses { get; set; } = new List<EightBallResponse>
|
||||
{
|
||||
new EightBallResponse() { Text = "Most definitely yes" },
|
||||
new EightBallResponse() { Text = "For sure" },
|
||||
new EightBallResponse() { Text = "Totally!" },
|
||||
new EightBallResponse() { Text = "As I see it, yes" },
|
||||
new EightBallResponse() { Text = "My sources say yes" },
|
||||
new EightBallResponse() { Text = "Yes" },
|
||||
new EightBallResponse() { Text = "Most likely" },
|
||||
new EightBallResponse() { Text = "Perhaps" },
|
||||
new EightBallResponse() { Text = "Maybe" },
|
||||
new EightBallResponse() { Text = "Not sure" },
|
||||
new EightBallResponse() { Text = "It is uncertain" },
|
||||
new EightBallResponse() { Text = "Ask me again later" },
|
||||
new EightBallResponse() { Text = "Don't count on it" },
|
||||
new EightBallResponse() { Text = "Probably not" },
|
||||
new EightBallResponse() { Text = "Very doubtful" },
|
||||
new EightBallResponse() { Text = "Most likely no" },
|
||||
new EightBallResponse() { Text = "Nope" },
|
||||
new EightBallResponse() { Text = "No" },
|
||||
new EightBallResponse() { Text = "My sources say no" },
|
||||
new EightBallResponse() { Text = "Dont even think about it" },
|
||||
new EightBallResponse() { Text = "Definitely no" },
|
||||
new EightBallResponse() { Text = "NO - It may cause disease contraction" }
|
||||
};
|
||||
|
||||
public List<RaceAnimal> RaceAnimals { get; set; } = new List<RaceAnimal>
|
||||
{
|
||||
new RaceAnimal { Icon = "🐼", Name = "Panda" },
|
||||
new RaceAnimal { Icon = "🐻", Name = "Bear" },
|
||||
new RaceAnimal { Icon = "🐧", Name = "Pengu" },
|
||||
new RaceAnimal { Icon = "🐨", Name = "Koala" },
|
||||
new RaceAnimal { Icon = "🐬", Name = "Dolphin" },
|
||||
new RaceAnimal { Icon = "🐞", Name = "Ladybird" },
|
||||
new RaceAnimal { Icon = "🦀", Name = "Crab" },
|
||||
new RaceAnimal { Icon = "🦄", Name = "Unicorn" }
|
||||
};
|
||||
}
|
||||
|
||||
public class PlayingStatus :DbEntity
|
||||
{
|
||||
public string Status { get; set; }
|
||||
}
|
||||
|
||||
public class BlacklistItem : DbEntity
|
||||
{
|
||||
public ulong ItemId { get; set; }
|
||||
public enum BlacklistType
|
||||
{
|
||||
Server,
|
||||
Channel,
|
||||
User
|
||||
}
|
||||
}
|
||||
|
||||
public class EightBallResponse : DbEntity
|
||||
{
|
||||
public string Text { get; set; }
|
||||
}
|
||||
|
||||
public class RaceAnimal : DbEntity
|
||||
{
|
||||
public string Icon { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
public class ModulePrefix : DbEntity
|
||||
{
|
||||
public string ModuleName { get; set; }
|
||||
public string Prefix { get; set; }
|
||||
}
|
||||
}
|
@ -31,12 +31,5 @@ namespace NadekoBot.Services.Database.Models
|
||||
//self assignable roles
|
||||
public bool ExclusiveSelfAssignedRoles { get; set; }
|
||||
public bool AutoDeleteSelfAssignedRoleMessages { get; set; }
|
||||
public bool RotatingStatuses { get; set; }
|
||||
public List<PlayingStatus> RotatingStatusMessages { get; set; }
|
||||
}
|
||||
|
||||
public class PlayingStatus : DbEntity
|
||||
{
|
||||
public string Status { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ namespace NadekoBot.Services.Database
|
||||
public DbSet<ClashCaller> ClashCallers { get; set; }
|
||||
public DbSet<Reminder> Reminders { get; set; }
|
||||
public DbSet<SelfAssignedRole> SelfAssignableRoles { get; set; }
|
||||
public DbSet<BotConfig> BotConfig { get; set; }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
@ -25,8 +26,7 @@ namespace NadekoBot.Services.Database
|
||||
var quoteEntity = modelBuilder.Entity<Quote>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region Donators
|
||||
|
||||
var donatorEntity = modelBuilder.Entity<Donator>();
|
||||
|
@ -0,0 +1,14 @@
|
||||
using NadekoBot.Services.Database.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NadekoBot.Services.Database.Repositories
|
||||
{
|
||||
public interface IBotConfigRepository : IRepository<BotConfig>
|
||||
{
|
||||
BotConfig GetOrCreate();
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
using NadekoBot.Services.Database.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace NadekoBot.Services.Database.Repositories.Impl
|
||||
{
|
||||
public class BotConfigRepository : Repository<BotConfig>, IBotConfigRepository
|
||||
{
|
||||
public BotConfigRepository(DbContext context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
public BotConfig GetOrCreate()
|
||||
{
|
||||
var config = _set.Include(bc => bc.RotatingStatusMessages)
|
||||
.Include(bc => bc.RaceAnimals)
|
||||
.Include(bc => bc.Blacklist)
|
||||
.Include(bc => bc.EightBallResponses)
|
||||
.Include(bc => bc.ModulePrefixes)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (config == null)
|
||||
{
|
||||
_set.Add(config = new BotConfig());
|
||||
_context.SaveChanges();
|
||||
}
|
||||
return config;
|
||||
}
|
||||
}
|
||||
}
|
@ -26,6 +26,6 @@ namespace NadekoBot.Services.Database.Repositories.Impl
|
||||
}
|
||||
|
||||
public IEnumerable<SelfAssignedRole> GetFromGuild(ulong guildId) =>
|
||||
_set.Where(s => s.GuildId == guildId);
|
||||
_set.Where(s => s.GuildId == guildId).ToList();
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,9 @@ namespace NadekoBot.Services.Database
|
||||
private ISelfAssignedRolesRepository _selfAssignedRoles;
|
||||
public ISelfAssignedRolesRepository SelfAssignedRoles => _selfAssignedRoles ?? (_selfAssignedRoles = new SelfAssignedRolesRepository(_context));
|
||||
|
||||
private IBotConfigRepository _botConfig;
|
||||
public IBotConfigRepository BotConfig => _botConfig ?? (_botConfig = new BotConfigRepository(_context));
|
||||
|
||||
public UnitOfWork(NadekoContext context)
|
||||
{
|
||||
_context = context;
|
||||
|
@ -1,52 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NadekoBot.Services
|
||||
{
|
||||
public interface IBotConfiguration
|
||||
{
|
||||
bool DontJoinServers { get; set; }
|
||||
bool ForwardMessages { get; set; }
|
||||
bool ForwardToAllOwners { get; set; }
|
||||
|
||||
bool RotatePlayingStatus { get; set; }
|
||||
List<string> PlayingStatuses { get; set; }
|
||||
|
||||
ulong BufferSize { get; set; }
|
||||
List<string> RaceAnimals { get; set; }
|
||||
string RemindMessageFormat { get; set; }
|
||||
|
||||
|
||||
HashSet<ulong> BlacklistedServers { get; set; }
|
||||
HashSet<ulong> BlacklistedChannels { get; set; }
|
||||
HashSet<ulong> BlacklistedUsers { get; set; }
|
||||
|
||||
List<string> EightBallResponses { get; set; }
|
||||
Currency Currency { get; set; }
|
||||
|
||||
ModulePrefixes ModulePrefixes { get; set; }
|
||||
}
|
||||
|
||||
public class Currency {
|
||||
public string Sign { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string PluralName { get; set; }
|
||||
}
|
||||
|
||||
public class ModulePrefixes
|
||||
{
|
||||
public string Administration { get; set; } = ".";
|
||||
public string Searches { get; set; } = "~";
|
||||
public string NSFW { get; set; } = "~";
|
||||
public string Conversations { get; set; } = "<@{0}>";
|
||||
public string ClashOfClans { get; set; } = ",";
|
||||
public string Help { get; set; } = "-";
|
||||
public string Music { get; set; } = "!!";
|
||||
public string Trello { get; set; } = "trello ";
|
||||
public string Games { get; set; } = ">";
|
||||
public string Gambling { get; set; } = "$";
|
||||
public string Permissions { get; set; } = ";";
|
||||
public string Programming { get; set; } = "%";
|
||||
public string Pokemon { get; set; } = ">";
|
||||
public string Utility { get; set; } = ".";
|
||||
}
|
||||
}
|
@ -1,92 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NadekoBot.Services.Impl
|
||||
{
|
||||
public class BotConfiguration : IBotConfiguration
|
||||
{
|
||||
internal Task _8BallResponses;
|
||||
|
||||
public HashSet<ulong> BlacklistedChannels { get; set; } = new HashSet<ulong>();
|
||||
|
||||
public HashSet<ulong> BlacklistedServers { get; set; } = new HashSet<ulong>();
|
||||
|
||||
public HashSet<ulong> BlacklistedUsers { get; set; } = new HashSet<ulong>();
|
||||
|
||||
public ulong BufferSize { get; set; } = 4000000;
|
||||
|
||||
public bool DontJoinServers { get; set; } = false;
|
||||
|
||||
public bool ForwardMessages { get; set; } = true;
|
||||
|
||||
public bool ForwardToAllOwners { get; set; } = true;
|
||||
|
||||
public ModulePrefixes ModulePrefixes { get; set; } = new ModulePrefixes
|
||||
{
|
||||
Administration = ".",
|
||||
ClashOfClans = ",",
|
||||
Conversations = "<@{0}>",
|
||||
Gambling = "$",
|
||||
Games = ">",
|
||||
Pokemon = ">",
|
||||
Help = "-",
|
||||
Music = "!!",
|
||||
NSFW = "~",
|
||||
Permissions = ";",
|
||||
Programming = "%",
|
||||
Searches = "~",
|
||||
Trello = "trello",
|
||||
Utility = "."
|
||||
};
|
||||
|
||||
public List<string> PlayingStatuses { get; set; } = new List<string>();
|
||||
|
||||
public string RemindMessageFormat { get; set; } = "❗⏰**I've been told to remind you to '%message%' now by %user%.**⏰❗";
|
||||
|
||||
public bool RotatePlayingStatus { get; set; } = false;
|
||||
|
||||
public Currency Currency { get; set; } = new Currency
|
||||
{
|
||||
Name = "Nadeko Flower",
|
||||
PluralName = "Nadeko Flowers",
|
||||
Sign = "🌸",
|
||||
};
|
||||
|
||||
public List<string> EightBallResponses { get; set; } = new List<string>
|
||||
{
|
||||
"Most definitely yes",
|
||||
"For sure",
|
||||
"As I see it, yes",
|
||||
"My sources say yes",
|
||||
"Yes",
|
||||
"Most likely",
|
||||
"Perhaps",
|
||||
"Maybe",
|
||||
"Not sure",
|
||||
"It is uncertain",
|
||||
"Ask me again later",
|
||||
"Don't count on it",
|
||||
"Probably not",
|
||||
"Very doubtful",
|
||||
"Most likely no",
|
||||
"Nope",
|
||||
"No",
|
||||
"My sources say no",
|
||||
"Dont even think about it",
|
||||
"Definitely no",
|
||||
"NO - It may cause disease contraction"
|
||||
};
|
||||
|
||||
public List<string> RaceAnimals { get; set; } = new List<string>
|
||||
{
|
||||
"🐼",
|
||||
"🐻",
|
||||
"🐧",
|
||||
"🐨",
|
||||
"🐬",
|
||||
"🐞",
|
||||
"🦀",
|
||||
"🦄"
|
||||
};
|
||||
}
|
||||
}
|
@ -3161,7 +3161,7 @@
|
||||
"lib/portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10/libvideo.dll": {}
|
||||
}
|
||||
},
|
||||
"Discord.Net/1.0.0-dev": {
|
||||
"Discord.Net/1.0.0-beta": {
|
||||
"type": "project",
|
||||
"framework": ".NETStandard,Version=v1.3",
|
||||
"dependencies": {
|
||||
@ -3188,7 +3188,7 @@
|
||||
"netstandard1.3/Discord.Net.dll": {}
|
||||
}
|
||||
},
|
||||
"Discord.Net.Commands/1.0.0-dev": {
|
||||
"Discord.Net.Commands/1.0.0-beta": {
|
||||
"type": "project",
|
||||
"framework": ".NETStandard,Version=v1.3",
|
||||
"dependencies": {
|
||||
@ -9019,12 +9019,12 @@
|
||||
"lib/portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10/libvideo.dll"
|
||||
]
|
||||
},
|
||||
"Discord.Net/1.0.0-dev": {
|
||||
"Discord.Net/1.0.0-beta": {
|
||||
"type": "project",
|
||||
"path": "../../discord.net/src/Discord.Net/project.json",
|
||||
"msbuildProject": "../../discord.net/src/Discord.Net/Discord.Net.xproj"
|
||||
},
|
||||
"Discord.Net.Commands/1.0.0-dev": {
|
||||
"Discord.Net.Commands/1.0.0-beta": {
|
||||
"type": "project",
|
||||
"path": "../../discord.net/src/Discord.Net.Commands/project.json",
|
||||
"msbuildProject": "../../discord.net/src/Discord.Net.Commands/Discord.Net.Commands.xproj"
|
||||
|
Loading…
Reference in New Issue
Block a user