Added random triggers

This commit is contained in:
2025-11-24 15:39:11 -05:00
parent aa0408b24b
commit f7433f70b3

24
bot.py
View File

@@ -2,6 +2,7 @@ import discord
import dotenv import dotenv
import os import os
import asyncio import asyncio
import random
# text_triggers = { # text_triggers = {
# "lessthan": "WHAT ARE YOU WAITING FOR?", # "lessthan": "WHAT ARE YOU WAITING FOR?",
@@ -27,6 +28,17 @@ class TextTrigger(MessageTrigger):
for trigger in self.triggers: for trigger in self.triggers:
if trigger in processed_string: if trigger in processed_string:
asyncio.create_task(message.reply(self.response)) asyncio.create_task(message.reply(self.response))
return
class RandomTrigger(MessageTrigger):
def __init__(self, chance:float, trigger:MessageTrigger):
self.chance = chance
self.trigger = trigger
def handle_message(self, message):
if random.random() > self.chance:
return
self.trigger.handle_message(message)
class EmojiTrigger(MessageTrigger): class EmojiTrigger(MessageTrigger):
def __init__(self, triggers:list[str], emoji_names:list[str]): def __init__(self, triggers:list[str], emoji_names:list[str]):
@@ -43,6 +55,7 @@ class EmojiTrigger(MessageTrigger):
return return
triggers:list[MessageTrigger] = [ triggers:list[MessageTrigger] = [
RandomTrigger(0.5,
TextTrigger([ TextTrigger([
"lessthan", "lessthan",
"focus", "focus",
@@ -50,7 +63,8 @@ triggers:list[MessageTrigger] = [
"didntnotice", "didntnotice",
"didntevennotice", "didntevennotice",
"oblivion" "oblivion"
], "WHAT ARE YOU WAITING FOR?"), ], "WHAT ARE YOU WAITING FOR?")
),
EmojiTrigger([ EmojiTrigger([
"lessthan", "lessthan",
"focus", "focus",
@@ -63,9 +77,16 @@ triggers:list[MessageTrigger] = [
"pieces", "pieces",
"peices" "peices"
], "Put. It. Together."), ], "Put. It. Together."),
RandomTrigger(0.25,
TextTrigger([ TextTrigger([
"annoy" "annoy"
], "Stop annoying yourself.") ], "Stop annoying yourself.")
),
RandomTrigger(0.15,
TextTrigger([
"bot"
], "I'm not a bot.")
),
] ]
dotenv.load_dotenv(".env") dotenv.load_dotenv(".env")
@@ -85,7 +106,6 @@ async def on_ready():
async def on_message(message): async def on_message(message):
if message.author == client.user: if message.author == client.user:
return return
global lessthan
print(f"Message from {message.author}: {message.content}") print(f"Message from {message.author}: {message.content}")
for trigger in triggers: for trigger in triggers: