Source code for bTagScript.block.discord_blocks.react_block

from typing import Optional

from ...interface import verb_required_block
from ...interpreter import Context


[docs]class ReactBlock(verb_required_block(True, payload=True)): """ The react block will set the actions "react" key to a list of reactions. .. note:: You must set the behaviour manually. **Usage:** ``{react:<emojis>}`` **Aliases:** ``None`` **Payload:** ``emojis`` **Parameter:** ``None`` .. tagscript:: {react:💩} {react:💩,:)} {react:💩~:)~:D} """ ACCEPTED_NAMES = ("react",) def __init__(self, limit: int = 5) -> None: """ Initialize the block Limit is the maximum number of reactions the block will add """ self.limit = limit super().__init__()
[docs] def process(self, ctx: Context) -> Optional[str]: """ Process the reactions """ reactions = ctx.verb.payload.strip().split("~" if "~" in ctx.verb.payload else ",") if len(reactions) > self.limit: return f"`Reaction Limit Reached ({self.limit})" ctx.response.actions["reactions"] = reactions return ""