forked from adam/discord-bot-shtik
Adam R Grey
efb4ab00d2
notes to self. 1) trust in upsert. an account has an external ID, a channel has an external ID w.r.t. its protocol. 2) as long as you can collapse a User, collapse Self.
50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
namespace vassago.Behavior;
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Newtonsoft.Json;
|
|
using vassago.Models;
|
|
using static vassago.Models.Enumerations;
|
|
|
|
[StaticPlz]
|
|
public class GeneralSnarkCloudNative : Behavior
|
|
{
|
|
public override string Name => "general snarkiness: cloud native";
|
|
|
|
public override string Trigger => "certain tech buzzwords that no human uses in normal conversation";
|
|
public override bool ShouldAct(Message message)
|
|
{
|
|
if(Behaver.Instance.IsSelf(message.Author.Id))
|
|
return false;
|
|
|
|
if(message.Channel.EffectivePermissions.ReactionsPossible)
|
|
return false;
|
|
|
|
if((MeannessFilterLevel)message.Channel.EffectivePermissions.MeannessFilterLevel < MeannessFilterLevel.Medium)
|
|
return false;
|
|
|
|
return Regex.IsMatch(message.Content, "\\bcloud( |-)?native\\b", RegexOptions.IgnoreCase) ||
|
|
Regex.IsMatch(message.Content, "\\benterprise( |-)?(level|solution)\\b", RegexOptions.IgnoreCase);
|
|
}
|
|
|
|
public override async Task<bool> ActOn(Message message)
|
|
{
|
|
switch (Shared.r.Next(2))
|
|
{
|
|
case 0:
|
|
await message.React("\uD83E\uDD2E"); //vomit emoji
|
|
break;
|
|
case 1:
|
|
await message.React("\uD83C\uDDE7"); //B emoji
|
|
await message.React("\uD83C\uDDE6"); //A
|
|
await message.React("\uD83C\uDDF3"); //N
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
} |