added reactionrole manager
This commit is contained in:
parent
8274a22f1b
commit
1695770f9f
4 changed files with 133 additions and 1 deletions
65
helpers/reactionrolestorage.cs
Normal file
65
helpers/reactionrolestorage.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using Microsoft.Data.Sqlite;
|
||||
using System;
|
||||
|
||||
namespace T3k3rg0.Helpers
|
||||
{
|
||||
public static class ReactionRoleStorage
|
||||
{
|
||||
private static readonly string DbPath = Environment.GetEnvironmentVariable("DB_ROLES_LOC");
|
||||
|
||||
public static ulong? GetRoleId(ulong messageId, string emojiRaw)
|
||||
{
|
||||
using var conn = new SqliteConnection($"Data Source={DbPath}");
|
||||
conn.Open();
|
||||
|
||||
using var cmd = conn.CreateCommand();
|
||||
cmd.CommandText = @"
|
||||
SELECT role_id FROM reaction_roles
|
||||
WHERE message_id = @msg AND emoji = @emoji";
|
||||
cmd.Parameters.AddWithValue("@msg", (long)messageId);
|
||||
cmd.Parameters.AddWithValue("@emoji", emojiRaw);
|
||||
|
||||
using var reader = cmd.ExecuteReader();
|
||||
if (reader.Read())
|
||||
{
|
||||
return (ulong)(long)reader["role_id"];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static bool TryAddReactionRole(ulong messageId, string emojiRaw, ulong roleId)
|
||||
{
|
||||
using var conn = new SqliteConnection($"Data Source={DbPath}");
|
||||
conn.Open();
|
||||
|
||||
using var cmd = conn.CreateCommand();
|
||||
cmd.CommandText = @"
|
||||
INSERT OR IGNORE INTO reaction_roles (message_id, emoji, role_id)
|
||||
VALUES (@msg, @emoji, @role)";
|
||||
cmd.Parameters.AddWithValue("@msg", (long)messageId);
|
||||
cmd.Parameters.AddWithValue("@emoji", emojiRaw);
|
||||
cmd.Parameters.AddWithValue("@role", (long)roleId);
|
||||
|
||||
int rowsAffected = cmd.ExecuteNonQuery();
|
||||
return rowsAffected > 0;
|
||||
}
|
||||
|
||||
public static bool TryRemoveReactionRole(ulong messageId, string emojiRaw)
|
||||
{
|
||||
using var conn = new SqliteConnection($"Data Source={DbPath}");
|
||||
conn.Open();
|
||||
|
||||
using var cmd = conn.CreateCommand();
|
||||
cmd.CommandText = @"
|
||||
DELETE FROM reaction_roles
|
||||
WHERE message_id = @msg AND emoji = @emoji";
|
||||
cmd.Parameters.AddWithValue("@msg", (long)messageId);
|
||||
cmd.Parameters.AddWithValue("@emoji", emojiRaw);
|
||||
|
||||
int rowsAffected = cmd.ExecuteNonQuery();
|
||||
return rowsAffected > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue