funny react

This commit is contained in:
2026-03-12 20:18:40 +00:00
parent 7844b21160
commit bf27843e82
2 changed files with 58 additions and 2 deletions

View File

@@ -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))
{
@@ -219,4 +246,4 @@ client.MessageService.MessageReceived += async (message) =>
};
Console.WriteLine("Listening for messages...");
await Task.Delay(Timeout.Infinite);
await Task.Delay(Timeout.Infinite);

View File

@@ -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);
}
}
};
};