2016-11-15 11:01:02 +00:00
using System.Collections.Generic ;
2016-08-28 00:46:36 +00:00
2017-10-13 04:14:54 +00:00
namespace NadekoBot.Core.Services.Database.Models
2016-08-28 00:46:36 +00:00
{
public class BotConfig : DbEntity
{
public HashSet < BlacklistItem > Blacklist { get ; set ; }
public ulong BufferSize { get ; set ; } = 4000000 ;
public bool ForwardMessages { get ; set ; } = true ;
public bool ForwardToAllOwners { get ; set ; } = true ;
2016-09-08 22:22:55 +00:00
public float CurrencyGenerationChance { get ; set ; } = 0.02f ;
2016-09-08 20:27:39 +00:00
public int CurrencyGenerationCooldown { get ; set ; } = 10 ;
2016-08-28 00:46:36 +00:00
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%.**⏰❗" ;
2017-01-12 19:19:56 +00:00
//currency
2016-08-28 00:46:36 +00:00
public string CurrencySign { get ; set ; } = "🌸" ;
public string CurrencyName { get ; set ; } = "Nadeko Flower" ;
public string CurrencyPluralName { get ; set ; } = "Nadeko Flowers" ;
2017-01-12 19:19:56 +00:00
public int TriviaCurrencyReward { get ; set ; } = 0 ;
2017-01-18 20:56:31 +00:00
public int MinimumBetAmount { get ; set ; } = 2 ;
public float BetflipMultiplier { get ; set ; } = 1.95f ;
2017-01-12 19:19:56 +00:00
public int CurrencyDropAmount { get ; set ; } = 1 ;
2017-06-13 23:21:31 +00:00
public int? CurrencyDropAmountMax { get ; set ; } = null ;
2017-01-12 19:19:56 +00:00
public float Betroll67Multiplier { get ; set ; } = 2 ;
2017-01-19 18:36:57 +00:00
public float Betroll91Multiplier { get ; set ; } = 4 ;
2017-01-12 19:19:56 +00:00
public float Betroll100Multiplier { get ; set ; } = 10 ;
2017-01-14 16:37:11 +00:00
//public HashSet<CommandCost> CommandCosts { get; set; } = new HashSet<CommandCost>();
/// <summary>
/// I messed up, don't use
/// </summary>
2017-01-12 19:19:56 +00:00
public HashSet < CommandPrice > CommandPrices { get ; set ; } = new HashSet < CommandPrice > ( ) ;
2016-10-10 04:12:22 +00:00
public HashSet < EightBallResponse > EightBallResponses { get ; set ; } = new HashSet < EightBallResponse > ( ) ;
public HashSet < RaceAnimal > RaceAnimals { get ; set ; } = new HashSet < RaceAnimal > ( ) ;
2016-10-04 23:57:35 +00:00
2017-06-13 00:50:01 +00:00
public string DMHelpString { get ; set ; } = "Type `.h` for help." ;
2016-10-06 17:19:42 +00:00
public string HelpString { get ; set ; } = @ "To add me to your server, use this link -> <https://discordapp.com/oauth2/authorize?client_id={0}&scope=bot&permissions=66186303>
You can use ` { 1 } modules ` command to see a list of all modules .
You can use ` { 1 } commands ModuleName `
( for example ` { 1 } commands Administration ` ) to see a list of all of the commands in that module .
2017-06-13 00:50:01 +00:00
For a specific command help , use ` { 1 } h CommandName ` ( for example { 1 } h { 1 } q )
2016-10-06 17:19:42 +00:00
* * LIST OF COMMANDS CAN BE FOUND ON THIS LINK * *
2016-11-29 21:00:30 +00:00
< http : //nadekobot.readthedocs.io/en/latest/Commands%20List/>
2016-10-06 17:19:42 +00:00
2017-02-09 16:09:11 +00:00
Nadeko Support Server : https : //discord.gg/nadekobot";
2016-10-04 23:57:35 +00:00
public int MigrationVersion { get ; set ; }
2017-01-18 20:56:31 +00:00
public string OkColor { get ; set ; } = "71cd40" ;
public string ErrorColor { get ; set ; } = "ee281f" ;
2017-02-13 16:45:29 +00:00
public string Locale { get ; set ; } = null ;
2017-03-31 12:07:18 +00:00
public List < StartupCommand > StartupCommands { get ; set ; }
2017-04-09 20:28:42 +00:00
public HashSet < BlockedCmdOrMdl > BlockedCommands { get ; set ; }
public HashSet < BlockedCmdOrMdl > BlockedModules { get ; set ; }
2017-07-15 03:04:16 +00:00
public int PermissionVersion { get ; set ; }
2017-05-30 04:54:59 +00:00
public string DefaultPrefix { get ; set ; } = "." ;
2017-06-16 15:47:02 +00:00
public bool CustomReactionsStartWith { get ; set ; } = false ;
2017-08-22 03:48:45 +00:00
public int XpPerMessage { get ; set ; } = 3 ;
public int XpMinutesTimeout { get ; set ; } = 5 ;
2017-10-15 07:39:46 +00:00
public HashSet < LoadedPackage > LoadedPackages { get ; set ; } = new HashSet < LoadedPackage > ( ) ;
2017-04-09 20:28:42 +00:00
}
public class BlockedCmdOrMdl : DbEntity
{
public string Name { get ; set ; }
public override bool Equals ( object obj )
{
if ( obj = = null | | GetType ( ) ! = obj . GetType ( ) )
{
return false ;
}
return ( ( BlockedCmdOrMdl ) obj ) . Name . ToLowerInvariant ( ) = = Name . ToLowerInvariant ( ) ;
}
public override int GetHashCode ( ) = > Name . GetHashCode ( ) ;
2017-03-31 12:07:18 +00:00
}
public class StartupCommand : DbEntity , IIndexed
{
public int Index { get ; set ; }
public string CommandText { get ; set ; }
public ulong ChannelId { get ; set ; }
public string ChannelName { get ; set ; }
public ulong? GuildId { get ; set ; }
public string GuildName { get ; set ; }
public ulong? VoiceChannelId { get ; set ; }
public string VoiceChannelName { get ; set ; }
2016-08-28 00:46:36 +00:00
}
public class PlayingStatus : DbEntity
{
public string Status { get ; set ; }
}
public class BlacklistItem : DbEntity
{
public ulong ItemId { get ; set ; }
2016-10-03 02:19:14 +00:00
public BlacklistType Type { get ; set ; }
2017-05-27 23:51:22 +00:00
}
2016-10-03 02:19:14 +00:00
2017-05-27 23:51:22 +00:00
public enum BlacklistType
{
Server ,
Channel ,
User
2016-08-28 00:46:36 +00:00
}
public class EightBallResponse : DbEntity
{
public string Text { get ; set ; }
2016-09-10 19:40:25 +00:00
public override int GetHashCode ( )
{
return Text . GetHashCode ( ) ;
}
public override bool Equals ( object obj )
{
if ( ! ( obj is EightBallResponse ) )
return base . Equals ( obj ) ;
return ( ( EightBallResponse ) obj ) . Text = = Text ;
}
2016-08-28 00:46:36 +00:00
}
public class RaceAnimal : DbEntity
{
public string Icon { get ; set ; }
public string Name { get ; set ; }
2016-09-10 19:40:25 +00:00
public override int GetHashCode ( )
{
return Icon . GetHashCode ( ) ;
}
public override bool Equals ( object obj )
{
if ( ! ( obj is RaceAnimal ) )
return base . Equals ( obj ) ;
return ( ( RaceAnimal ) obj ) . Icon = = Icon ;
}
2016-08-28 00:46:36 +00:00
}
}