mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-04 00:34:26 -05:00 
			
		
		
		
	.cleverbot should be available on the public bot now
This commit is contained in:
		@@ -182,15 +182,6 @@ public static class GuildConfigExtensions
 | 
			
		||||
            .SelectMany(gc => gc.FollowedStreams)
 | 
			
		||||
            .ToList();
 | 
			
		||||
 | 
			
		||||
    public static void SetCleverbotEnabled(this DbSet<GuildConfig> configs, ulong id, bool cleverbotEnabled)
 | 
			
		||||
    {
 | 
			
		||||
        var conf = configs.FirstOrDefault(gc => gc.GuildId == id);
 | 
			
		||||
 | 
			
		||||
        if (conf is null)
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        conf.CleverbotEnabled = cleverbotEnabled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static XpSettings XpSettingsFor(this DbContext ctx, ulong guildId)
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,32 +18,20 @@ public partial class Games
 | 
			
		||||
        [Cmd]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [UserPerm(GuildPerm.ManageMessages)]
 | 
			
		||||
        [NoPublicBot]
 | 
			
		||||
        public async Task CleverBot()
 | 
			
		||||
        {
 | 
			
		||||
            var channel = (ITextChannel)ctx.Channel;
 | 
			
		||||
 | 
			
		||||
            if (_service.ChatterBotGuilds.TryRemove(channel.Guild.Id, out _))
 | 
			
		||||
            {
 | 
			
		||||
                await using (var uow = _db.GetDbContext())
 | 
			
		||||
                {
 | 
			
		||||
                    uow.Set<GuildConfig>().SetCleverbotEnabled(ctx.Guild.Id, false);
 | 
			
		||||
                    await uow.SaveChangesAsync();
 | 
			
		||||
                }
 | 
			
		||||
            var newState = await _service.ToggleChatterBotAsync(ctx.Guild.Id);
 | 
			
		||||
 | 
			
		||||
            if (!newState)
 | 
			
		||||
            {
 | 
			
		||||
                await Response().Confirm(strs.chatbot_disabled).SendAsync();
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            _service.ChatterBotGuilds.TryAdd(channel.Guild.Id, new(() => _service.CreateSession(), true));
 | 
			
		||||
 | 
			
		||||
            await using (var uow = _db.GetDbContext())
 | 
			
		||||
            {
 | 
			
		||||
                uow.Set<GuildConfig>().SetCleverbotEnabled(ctx.Guild.Id, true);
 | 
			
		||||
                await uow.SaveChangesAsync();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await Response().Confirm(strs.chatbot_enabled).SendAsync();
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,8 @@
 | 
			
		||||
#nullable disable
 | 
			
		||||
using LinqToDB;
 | 
			
		||||
using LinqToDB.EntityFrameworkCore;
 | 
			
		||||
using NadekoBot.Common.ModuleBehaviors;
 | 
			
		||||
using NadekoBot.Db.Models;
 | 
			
		||||
using NadekoBot.Modules.Games.Common;
 | 
			
		||||
using NadekoBot.Modules.Games.Common.ChatterBot;
 | 
			
		||||
using NadekoBot.Modules.Patronage;
 | 
			
		||||
@@ -9,7 +12,7 @@ namespace NadekoBot.Modules.Games.Services;
 | 
			
		||||
 | 
			
		||||
public class ChatterBotService : IExecOnMessage
 | 
			
		||||
{
 | 
			
		||||
    public ConcurrentDictionary<ulong, Lazy<IChatterBotSession>> ChatterBotGuilds { get; }
 | 
			
		||||
    private ConcurrentDictionary<ulong, Lazy<IChatterBotSession>> ChatterBotGuilds { get; }
 | 
			
		||||
 | 
			
		||||
    public int Priority
 | 
			
		||||
        => 1;
 | 
			
		||||
@@ -20,6 +23,7 @@ public class ChatterBotService : IExecOnMessage
 | 
			
		||||
    private readonly IHttpClientFactory _httpFactory;
 | 
			
		||||
    private readonly GamesConfigService _gcs;
 | 
			
		||||
    private readonly IMessageSenderService _sender;
 | 
			
		||||
    private readonly DbService _db;
 | 
			
		||||
    public readonly IPatronageService _ps;
 | 
			
		||||
 | 
			
		||||
    public ChatterBotService(
 | 
			
		||||
@@ -30,12 +34,14 @@ public class ChatterBotService : IExecOnMessage
 | 
			
		||||
        IHttpClientFactory factory,
 | 
			
		||||
        IBotCredentials creds,
 | 
			
		||||
        GamesConfigService gcs,
 | 
			
		||||
        IMessageSenderService sender)
 | 
			
		||||
        IMessageSenderService sender,
 | 
			
		||||
        DbService db)
 | 
			
		||||
    {
 | 
			
		||||
        _client = client;
 | 
			
		||||
        _perms = perms;
 | 
			
		||||
        _creds = creds;
 | 
			
		||||
        _sender = sender;
 | 
			
		||||
        _db = db;
 | 
			
		||||
        _httpFactory = factory;
 | 
			
		||||
        _perms = perms;
 | 
			
		||||
        _gcs = gcs;
 | 
			
		||||
@@ -196,4 +202,38 @@ public class ChatterBotService : IExecOnMessage
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public async Task<bool> ToggleChatterBotAsync(ulong guildId)
 | 
			
		||||
    {
 | 
			
		||||
        if (ChatterBotGuilds.TryRemove(guildId, out _))
 | 
			
		||||
        {
 | 
			
		||||
            await using var uow = _db.GetDbContext();
 | 
			
		||||
            await uow.Set<GuildConfig>()
 | 
			
		||||
                     .ToLinqToDBTable()
 | 
			
		||||
                     .Where(x => x.GuildId == guildId)
 | 
			
		||||
                     .UpdateAsync((gc) => new GuildConfig()
 | 
			
		||||
                     {
 | 
			
		||||
                         CleverbotEnabled = false
 | 
			
		||||
                     });
 | 
			
		||||
            await uow.SaveChangesAsync();
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ChatterBotGuilds.TryAdd(guildId, new(() => CreateSession(), true));
 | 
			
		||||
 | 
			
		||||
        await using (var uow = _db.GetDbContext())
 | 
			
		||||
        {
 | 
			
		||||
            await uow.Set<GuildConfig>()
 | 
			
		||||
                     .ToLinqToDBTable()
 | 
			
		||||
                     .Where(x => x.GuildId == guildId)
 | 
			
		||||
                     .UpdateAsync((gc) => new GuildConfig()
 | 
			
		||||
                     {
 | 
			
		||||
                         CleverbotEnabled = true
 | 
			
		||||
                     });
 | 
			
		||||
 | 
			
		||||
            await uow.SaveChangesAsync();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1366,10 +1366,10 @@ flip:
 | 
			
		||||
        desc: "The number of times the coin is flipped."
 | 
			
		||||
betflip:
 | 
			
		||||
  desc: |-
 | 
			
		||||
    Bet to guess will the result be heads or tails.
 | 
			
		||||
    Guessing awards you 1.95x the currency you've bet (rounded up).
 | 
			
		||||
    Bet on the coin flip.
 | 
			
		||||
    The result can be heads or tails.
 | 
			
		||||
    Guessing correctly rewards you with 1.95x of the currency you've bet (rounded up).
 | 
			
		||||
    Multiplier can be changed by the bot owner.
 | 
			
		||||
    
 | 
			
		||||
  ex:
 | 
			
		||||
    - 5 heads
 | 
			
		||||
    - 3 t
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user