funny react
This commit is contained in:
29
Program.cs
29
Program.cs
@@ -2,13 +2,14 @@ using Valour.Sdk.Client;
|
||||
using Valour.Sdk.Models;
|
||||
using DotNetEnv;
|
||||
using SkyBot;
|
||||
using System.Text;
|
||||
|
||||
Env.Load();
|
||||
|
||||
var token = Environment.GetEnvironmentVariable("TOKEN");
|
||||
var allowedUserIds = new List<long> { 15652354820931584 };
|
||||
var ownerId = 15652354820931584;
|
||||
var prefix = "s/";
|
||||
var prefix = "sd/";
|
||||
|
||||
var client = new ValourClient("https://api.valour.gg/");
|
||||
client.SetupHttpClient();
|
||||
@@ -66,6 +67,32 @@ client.MessageService.MessageReceived += async (message) =>
|
||||
}
|
||||
};
|
||||
|
||||
if (Utils.ContainsAny(content, $"{prefix}react"))
|
||||
{
|
||||
if (message.AuthorUserId != ownerId) return;
|
||||
|
||||
string[] args = content.Split(' ', StringSplitOptions.RemoveEmptyEntries);
|
||||
if (args.Length < 2) return;
|
||||
string emoji = args[1];
|
||||
|
||||
var interceptor = new Utils.ReactionInterceptor(Console.Out);
|
||||
Console.SetOut(interceptor);
|
||||
|
||||
while (true)
|
||||
{
|
||||
interceptor.Reset();
|
||||
await message.AddReactionAsync(emoji);
|
||||
if (interceptor.DetectedAlreadyExists)
|
||||
{
|
||||
Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true });
|
||||
Console.WriteLine("Reaction already exists, stopping.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true });
|
||||
}
|
||||
|
||||
var echoprefixes = new[] { $"{prefix}echo"};
|
||||
if (Utils.ContainsAny(content, echoprefixes))
|
||||
{
|
||||
|
||||
29
utils.cs
29
utils.cs
@@ -2,6 +2,7 @@ using System.Globalization;
|
||||
using System.Text.Json;
|
||||
using Valour.Sdk.Models;
|
||||
using Valour.Sdk.Client;
|
||||
using System.Text;
|
||||
|
||||
namespace SkyBot
|
||||
{
|
||||
@@ -105,5 +106,33 @@ namespace SkyBot
|
||||
initializedPlanets.Add(planet.Id);
|
||||
}
|
||||
}
|
||||
|
||||
public class ReactionInterceptor : TextWriter
|
||||
{
|
||||
private readonly TextWriter _original;
|
||||
public bool DetectedAlreadyExists { get; private set; }
|
||||
public override Encoding Encoding => _original.Encoding;
|
||||
|
||||
public ReactionInterceptor(TextWriter original)
|
||||
{
|
||||
_original = original;
|
||||
}
|
||||
|
||||
public void Reset() => DetectedAlreadyExists = false;
|
||||
|
||||
public override void WriteLine(string value)
|
||||
{
|
||||
if (value?.Contains("Reaction already exists") == true)
|
||||
DetectedAlreadyExists = true;
|
||||
_original.WriteLine(value);
|
||||
}
|
||||
|
||||
public override void Write(string value)
|
||||
{
|
||||
if (value?.Contains("Reaction already exists") == true)
|
||||
DetectedAlreadyExists = true;
|
||||
_original.Write(value);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user