Skip to content

Commit

Permalink
Integrated the code from J0n about the Bot status message
Browse files Browse the repository at this point in the history
  • Loading branch information
CPULL committed Jul 25, 2022
1 parent 82ae646 commit d1d8d2e
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 33 deletions.
64 changes: 38 additions & 26 deletions UPBot Code/Actions/DiscordStatus.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using DSharpPlus;
using DSharpPlus.Entities;
Expand All @@ -9,33 +10,44 @@
/// author: J0nathan550
/// </summary>

namespace UPBot.UPBot_Code.DiscordRPC
{
public class DiscordStatus
{
private List<string> activityStatusString = new List<string>();
private List<int> activityTypeInt = new List<int>();
public async Task DiscordUpdateStatusFunction(DiscordClient client)
{
activityStatusString.Add("at you!"); activityTypeInt.Add(1);
activityStatusString.Add("for all users!"); activityTypeInt.Add(1);
activityStatusString.Add("coding algorithms!"); activityTypeInt.Add(0);
activityStatusString.Add("solving problems"); activityTypeInt.Add(4);
activityStatusString.Add("programming tutorials"); activityTypeInt.Add(3);
activityStatusString.Add("sounds in my head"); activityTypeInt.Add(2);
namespace UPBot.DiscordRPC {
public class DiscordStatus {
struct ActivityStatus {
public string status;
public ActivityType type;
}

async static void DiscordUpdateStatusFunction(DiscordClient client, CancellationToken token) {
List<ActivityStatus> activityStatusString = new() {
new() { type = ActivityType.Playing, status = "Visual Studio to code algorithms!" },
new() { type = ActivityType.Playing, status = "a random game" },
new() { type = ActivityType.Streaming, status = "the whole life" },
new() { type = ActivityType.Streaming, status = "a bunch of solution" },
new() { type = ActivityType.Streaming, status = "programming tutorials" },
new() { type = ActivityType.ListeningTo, status = "Ode to Joy" },
new() { type = ActivityType.ListeningTo, status = "your complaints" },
new() { type = ActivityType.ListeningTo, status = "sounds in my head" },
new() { type = ActivityType.Watching, status = "you!" },
new() { type = ActivityType.Watching, status = "all users" },
new() { type = ActivityType.Watching, status = "for nitro fakes" },
new() { type = ActivityType.Watching, status = "to reformat code" },
new() { type = ActivityType.Competing, status = "with other bots" }
};

Random random = new Random();
int num = random.Next(0, activityStatusString.Count);
Random random = new();
while (!token.IsCancellationRequested) {
int activity = random.Next(0, activityStatusString.Count);
ActivityStatus activityStatus = activityStatusString[activity];

if (activityTypeInt[num] == 0) await client.UpdateStatusAsync(new DiscordActivity(activityStatusString[num], ActivityType.Playing));
else if (activityTypeInt[num] == 1) await client.UpdateStatusAsync(new DiscordActivity(activityStatusString[num], ActivityType.Watching));
else if (activityTypeInt[num] == 2) await client.UpdateStatusAsync(new DiscordActivity(activityStatusString[num], ActivityType.ListeningTo));
else if (activityTypeInt[num] == 3) await client.UpdateStatusAsync(new DiscordActivity(activityStatusString[num], ActivityType.Streaming));
else if (activityTypeInt[num] == 4) await client.UpdateStatusAsync(new DiscordActivity(activityStatusString[num], ActivityType.Competing));
else await client.UpdateStatusAsync(new DiscordActivity(activityStatusString[num], ActivityType.Playing));
await client.UpdateStatusAsync(new DiscordActivity(activityStatus.status, activityStatus.type));

await Task.Delay(TimeSpan.FromSeconds(60 + random.Next(0, 180)), token);
}
}

await Task.Delay(TimeSpan.FromMinutes(5));
await DiscordUpdateStatusFunction(client);
}
internal static void Start(DiscordClient client) {
Task statusUpdateTask = new(() => DiscordUpdateStatusFunction(client, new CancellationToken()));
statusUpdateTask.Start();
}
}
}
9 changes: 4 additions & 5 deletions UPBot Code/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using DSharpPlus.Interactivity;
using DSharpPlus.Interactivity.Extensions;
using DSharpPlus.SlashCommands;
using UPBot.UPBot_Code.DiscordRPC;
using UPBot.DiscordRPC;

namespace UPBot {
class Program {
Expand Down Expand Up @@ -240,6 +240,9 @@ private static async Task WaitForGuildsTask(DiscordClient client) {
client.MessageUpdated += async (s, e) => { await CheckSpam.CheckMessageUpdate(s, e); };
Console.ForegroundColor = ConsoleColor.White;

Utils.Log("DiscordRichPresence", null);
DiscordStatus.Start(client);


Console.ForegroundColor = ConsoleColor.Yellow;
Utils.Log("Tracking", null);
Expand All @@ -250,10 +253,6 @@ private static async Task WaitForGuildsTask(DiscordClient client) {
Utils.Log("--->>> Bot ready <<<---", null);
Console.ForegroundColor = ConsoleColor.White;

Utils.Log("DiscordRichPresence", null);
DiscordStatus discordStatus = new DiscordStatus();
await discordStatus.DiscordUpdateStatusFunction(client);

}
}
}
4 changes: 2 additions & 2 deletions UPBot Code/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
/// "General-purpose" function, which can be needed anywhere.
/// </summary>
public static class Utils {
public const int vmajor = 0, vminor = 3, vbuild = 1;
public const int vmajor = 0, vminor = 3, vbuild = 2;
public const char vrev = ' ';
public static string LogsFolder = "./";
public readonly static System.Diagnostics.StackTrace sttr = new();
Expand All @@ -37,7 +37,7 @@ private class LogInfo {
readonly private static Dictionary<string, LogInfo> logs = new();

public static string GetVersion() {
return vmajor + "." + vminor + "." + vbuild + vrev + " - 2022/06/26";
return vmajor + "." + vminor + "." + vbuild + vrev + " - 2022/07/25";
}

public static DiscordClient GetClient() {
Expand Down

0 comments on commit d1d8d2e

Please sign in to comment.