More DB staff and house keeping and better emoji
This commit is contained in:
@@ -11,7 +11,7 @@ using System.Linq;
|
||||
|
||||
namespace EventBot.Services
|
||||
{
|
||||
public abstract class DatabaseService: DbContext
|
||||
public abstract class DatabaseService : DbContext
|
||||
{
|
||||
private readonly IServiceProvider _services;
|
||||
private readonly DiscordSocketClient _discord;
|
||||
@@ -36,6 +36,7 @@ namespace EventBot.Services
|
||||
_discord = services.GetRequiredService<DiscordSocketClient>();
|
||||
_discord.GuildAvailable += OnGuildAvaivable;
|
||||
}
|
||||
public DatabaseService(): base() {}
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
|
@@ -1,46 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using NeoSmart.Unicode;
|
||||
using System.Linq;
|
||||
using Discord;
|
||||
using DEmoji = Discord.Emoji;
|
||||
using UEmoji = NeoSmart.Unicode.Emoji;
|
||||
|
||||
namespace EventBot.Services
|
||||
{
|
||||
|
||||
public class EmoteService
|
||||
{
|
||||
private IEnumerable<string> emoji;
|
||||
|
||||
public EmoteService()
|
||||
{
|
||||
emoji = UEmoji.All.Select(e => e.Sequence.AsString);
|
||||
}
|
||||
|
||||
public bool TryParse(string input, out IEmote emote)
|
||||
{
|
||||
if(Emote.TryParse(input, out Emote parsedEmote))
|
||||
{
|
||||
emote = parsedEmote;
|
||||
return true;
|
||||
}
|
||||
if(emoji.Contains(input))
|
||||
{
|
||||
emote = new DEmoji(input);
|
||||
return true;
|
||||
}
|
||||
emote = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public IEmote Parse(string input)
|
||||
{
|
||||
if (!TryParse(input, out IEmote parsed))
|
||||
throw new ArgumentException("Failed to parse emote.");
|
||||
return parsed;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -15,14 +15,12 @@ namespace EventBot.Services
|
||||
{
|
||||
private readonly DiscordSocketClient _discord;
|
||||
private readonly DatabaseService _database;
|
||||
private readonly EmoteService _emotes;
|
||||
private readonly IServiceProvider _services;
|
||||
|
||||
public EventManagementService(IServiceProvider services)
|
||||
{
|
||||
_discord = services.GetRequiredService<DiscordSocketClient>();
|
||||
_database = services.GetRequiredService<DatabaseService>();
|
||||
_emotes = services.GetRequiredService<EmoteService>();
|
||||
_services = services;
|
||||
|
||||
_discord.ReactionAdded += ReactionAddedAsync;
|
||||
@@ -128,7 +126,7 @@ namespace EventBot.Services
|
||||
var @event = _database.Events.FirstOrDefault(e => e.MessageId == message.Id);
|
||||
if (@event != null)
|
||||
{
|
||||
var role = @event.Roles.FirstOrDefault(r => reaction.Emote.Equals(_emotes.Parse(r.Emote)));
|
||||
var role = @event.Roles.FirstOrDefault(r => reaction.Emote.Equals(EmoteHelper.Parse(r.Emote)));
|
||||
if(role != null)
|
||||
{
|
||||
var userMessage = await message.GetOrDownloadAsync();
|
||||
|
@@ -9,6 +9,8 @@ namespace EventBot.Services
|
||||
{
|
||||
public MySqlDatabaseService(IServiceProvider services, DbContextOptions options) : base(services, options) { }
|
||||
public MySqlDatabaseService(IServiceProvider services) : base(services) { }
|
||||
public MySqlDatabaseService() : base() { }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
base.OnConfiguring(optionsBuilder);
|
||||
|
@@ -9,6 +9,7 @@ namespace EventBot.Services
|
||||
{
|
||||
public SqliteDatabaseService(IServiceProvider services, DbContextOptions options) : base(services, options) { }
|
||||
public SqliteDatabaseService(IServiceProvider services) : base(services) {}
|
||||
public SqliteDatabaseService() : base() { }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
|
Reference in New Issue
Block a user