minerbot2/plugins/pronouns.py

41 lines
1.2 KiB
Python

from bot import IRCLine
BOT = None
def respond(ev,msg):
target = ev.target if ev.target.startswith("#") else ev.hostmask.nick
prefix = ev.hostmask.nick+": " if ev.target.startswith("#") else ""
BOT.socket.send(IRCLine("PRIVMSG",target,prefix+msg))
from dictdata import DictData
pronouns = DictData("pronouns.json")
assocd = DictData("assoc_pronouns.json")
def on_cmd_pronouns(event):
if not BOT: return
nick = event.hostmask.nick
account = event.tags.get("account",nick)
if len(event.parts)==1:
if event.parts[0].lower() in "help set".split():
respond(event,f"Usage: {BOT.prefix}pronouns [nick] or {BOT.prefix}pronouns set <pronouns>")
return
nick = event.parts[0].lower()
account = assocd.get(nick,nick)
elif len(event.parts)>1:
if event.parts[0].lower()=="set":
pronouns[account]=" ".join(event.parts[1:])
pn = pronouns.get(account,"not set")
respond(event,f"Pronouns for {nick}: {pn}")
def assoc(event):
try:
event = event.parsed
assocd[event.hostmask.nick]=event.tags.get("account",event.hostmask.nick)
except: pass
def register(bot):
global BOT
BOT=bot
bot.event_manager.on("command_pronouns",on_cmd_pronouns)
bot.event_manager.on("raw_line",assoc)