initial
This commit is contained in:
73
Budet-cho-bot/Functions/Functions.cs
Normal file
73
Budet-cho-bot/Functions/Functions.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using Discord;
|
||||
using Discord.WebSocket;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord_Bot
|
||||
{
|
||||
public static class Functions
|
||||
{
|
||||
public static async Task SetBotStatusAsync(DiscordSocketClient client)
|
||||
{
|
||||
JObject config = GetConfig();
|
||||
|
||||
string currently = config["currently"]?.Value<string>().ToLower();
|
||||
string statusText = config["playing_status"]?.Value<string>();
|
||||
string onlineStatus = config["status"]?.Value<string>().ToLower();
|
||||
|
||||
// Set the online status
|
||||
if (!string.IsNullOrEmpty(onlineStatus))
|
||||
{
|
||||
UserStatus userStatus = onlineStatus switch
|
||||
{
|
||||
"dnd" => UserStatus.DoNotDisturb,
|
||||
"idle" => UserStatus.Idle,
|
||||
"offline" => UserStatus.Invisible,
|
||||
_ => UserStatus.Online
|
||||
};
|
||||
|
||||
await client.SetStatusAsync(userStatus);
|
||||
Console.WriteLine($"{DateTime.Now.TimeOfDay:hh\\:mm\\:ss} | Online status set | {userStatus}");
|
||||
}
|
||||
|
||||
// Set the playing status
|
||||
if (!string.IsNullOrEmpty(currently) && !string.IsNullOrEmpty(statusText))
|
||||
{
|
||||
ActivityType activity = currently switch
|
||||
{
|
||||
"listening" => ActivityType.Listening,
|
||||
"watching" => ActivityType.Watching,
|
||||
"streaming" => ActivityType.Streaming,
|
||||
_ => ActivityType.Playing
|
||||
};
|
||||
|
||||
await client.SetGameAsync(statusText, type: activity);
|
||||
Console.WriteLine($"{DateTime.Now.TimeOfDay:hh\\:mm\\:ss} | Playing status set | {activity}: {statusText}");
|
||||
}
|
||||
}
|
||||
|
||||
public static JObject GetConfig()
|
||||
{
|
||||
using StreamReader configJson = new StreamReader(Directory.GetCurrentDirectory() + @"/Config.json");
|
||||
return (JObject)JsonConvert.DeserializeObject(configJson.ReadToEnd());
|
||||
}
|
||||
|
||||
public static void SaveConfig(JObject config)
|
||||
{
|
||||
using (StreamWriter file = File.CreateText(Directory.GetCurrentDirectory() + @"/Config.json"))
|
||||
using (JsonTextWriter writer = new JsonTextWriter(file))
|
||||
{
|
||||
config.WriteTo(writer);
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetAvatarUrl(SocketUser user, ushort size = 1024)
|
||||
{
|
||||
// Get user avatar and resize it. If the user has no avatar, get the default Discord avatar.
|
||||
return user.GetAvatarUrl(size: size) ?? user.GetDefaultAvatarUrl();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user