Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Discord.Commands;
- using Microsoft.Data.Sqlite;
- using System;
- using System.Threading.Tasks;
- namespace PrayerBot
- {
- public class Commands : ModuleBase<SocketCommandContext>
- {
- [Command("ping")]
- private async Task Ping()
- {
- await ReplyAsync("Pong! 🏓 **" + Program._client.Latency + "ms**");
- }
- [Command("help")]
- private async Task Help()
- {
- string returnStr = "Worley Byrd Help\n";
- returnStr += "~addprayer prayer - this adds a prayer\n";
- returnStr += "~viewprayers - view prayers that haven't been answered\n";
- returnStr += "~answerprayer id# - mark prayer# as answered\n";
- await ReplyAsync(returnStr);
- }
- void setKeyValue(string name, string value)
- {
- string keyQuery = $"select value from keys where name='{name}'";
- string strValue = "";
- using (var connection = new SqliteConnection("Data Source=prayers.s3db"))
- {
- connection.Open();
- var command = connection.CreateCommand();
- command.CommandText = keyQuery;
- using (var reader = command.ExecuteReader())
- {
- while (reader.Read())
- {
- strValue = reader.GetString(0);
- }
- }
- }
- if (String.IsNullOrEmpty(strValue))
- {
- //insert
- string insertQuery = $"insert into keys(name,value) values('{name}','{value}')";
- using (var connection = new SqliteConnection("Data Source=prayers.s3db"))
- {
- connection.Open();
- var cmd = connection.CreateCommand();
- cmd.CommandText = insertQuery;
- cmd.ExecuteNonQuery();
- }
- }
- else
- {
- //update
- string updateQuery = $"update keys set value='{value}' where name='{name}'";
- using (var connection = new SqliteConnection("Data Source=prayers.s3db"))
- {
- connection.Open();
- var cmd = connection.CreateCommand();
- cmd.CommandText = updateQuery;
- cmd.ExecuteNonQuery();
- }
- }
- }
- [Command("serverinfo")]
- public async Task Serverinfo()
- {
- await Context.Channel.SendMessageAsync($"This Discord server's name is {Context.Guild}");
- }
- [Command("posttochannel")]
- [Summary("Which channel to post prayers to")]
- public Task SetPostToChannel([Remainder][Summary("Set to this channel")] string channel)
- {
- string serverName = $"{Context.Guild}";
- setKeyValue($"posttochannel.{serverName}", channel);
- return ReplyAsync("Post Channel set to " + channel);
- }
- [Command("addprayer")]
- [Summary("Add's a prayer to the prayer DB")]
- public Task AddPrayerAsync([Remainder][Summary("The prayer to add")] string prayer)
- {
- string insertPrayer = string.Format("insert into prayers(prayer) values('{0}')", prayer);
- using (var connection = new SqliteConnection("Data Source=prayers.s3db"))
- {
- connection.Open();
- var command = connection.CreateCommand();
- command.CommandText = insertPrayer;
- command.ExecuteNonQuery();
- }
- return ReplyAsync("Prayer added!");
- }
- [Command("viewprayers")]
- [Summary("Add's a prayer to the prayer DB")]
- public Task ListPrayersAsync()
- {
- string selectPrayers = string.Format("select * from prayers where answered=0");
- string resultString = "";
- using (var connection = new SqliteConnection("Data Source=prayers.s3db"))
- {
- connection.Open();
- var command = connection.CreateCommand();
- command.CommandText = selectPrayers;
- using (var reader = command.ExecuteReader())
- {
- while(reader.Read())
- {
- var id = reader.GetString(0);
- var prayer = reader.GetString(1);
- resultString += String.Format("Prayer {0}: {1}\n", id, prayer);
- }
- }
- }
- return ReplyAsync(resultString);
- }
- [Command("answerprayer")]
- [Summary("Add's a prayer to the prayer DB")]
- public Task AnswerPrayerAsync([Remainder][Summary("This prayer has been answered")] string id)
- {
- string updatePrayer = string.Format("update prayers set answered=1 where id=" + id);
- using (var connection = new SqliteConnection("Data Source=prayers.s3db"))
- {
- connection.Open();
- var command = connection.CreateCommand();
- command.CommandText = updatePrayer;
- command.ExecuteNonQuery();
- }
- return ReplyAsync(String.Format("Prayer {0} has been answered\n",id));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement