78 lines
3.3 KiB
Python
78 lines
3.3 KiB
Python
|
#!/usr/bin/python3
|
||
|
|
||
|
import pinhook.plugin
|
||
|
import util.tilde
|
||
|
|
||
|
@pinhook.plugin.command('&tildescore', help_text='See how many tildes you have with ju.')
|
||
|
@pinhook.plugin.command('&ts', help_text='Alias -- &tildescore')
|
||
|
def tildescore_plugin(msg):
|
||
|
return pinhook.plugin.message(util.tilde.show_tildescore(msg.nick))
|
||
|
|
||
|
@pinhook.plugin.command('&jackpot', help_text='See the current jackpot.')
|
||
|
def jackpot_plugin(msg):
|
||
|
return pinhook.plugin.message(util.tilde.show_jackpot())
|
||
|
|
||
|
# ADMIN PLUGIN
|
||
|
@pinhook.plugin.command('&tao', help_text='[Admin] Set the admin only mode', ops=True)
|
||
|
def debug_plugin(msg):
|
||
|
if msg.nick not in msg.ops:
|
||
|
return
|
||
|
if msg.arg:
|
||
|
util.tilde.ADMIN_ONLY = (msg.arg.lower() == 'true' or msg.arg.lower() == 't')
|
||
|
return pinhook.plugin.message("ADMIN_ONLY set to '{}'".format(util.tilde.ADMIN_ONLY))
|
||
|
|
||
|
# ADMIN PLUGIN
|
||
|
@pinhook.plugin.command('&dbg', help_text='[Admin] Set the debug mode', ops=True)
|
||
|
def debug_plugin(msg):
|
||
|
if msg.nick not in msg.ops:
|
||
|
return
|
||
|
if msg.arg:
|
||
|
util.tilde.DEBUG = (msg.arg.lower() == 'true' or msg.arg.lower() == 't')
|
||
|
return pinhook.plugin.message("DEBUG set to '{}'".format(util.tilde.DEBUG))
|
||
|
|
||
|
# ADMIN PLUGIN
|
||
|
@pinhook.plugin.command('&tsk', help_text='[Admin] Set the timeskip mode', ops=True)
|
||
|
def timeskip_plugin(msg):
|
||
|
if msg.nick not in msg.ops:
|
||
|
return
|
||
|
if msg.arg:
|
||
|
util.tilde.TIMESKIP = (msg.arg.lower() == 'true' or msg.arg.lower() == 't')
|
||
|
return pinhook.plugin.message("TIMESKIP set to '{}'".format(util.tilde.TIMESKIP))
|
||
|
|
||
|
|
||
|
# ADMIN PLUGIN
|
||
|
@pinhook.plugin.command('&tilde_requests', help_text='[Admin] See the current requests for the jugame', ops=True)
|
||
|
def tilde_requests_plugin(msg):
|
||
|
if msg.nick not in msg.ops and not util.tilde.DEBUG:
|
||
|
return
|
||
|
return pinhook.plugin.message("Outstanding requests: {}".format(str(util.tilde.challenges)) if util.tilde.challenges else "(none)")
|
||
|
|
||
|
# ADMIN PLUGIN
|
||
|
@pinhook.plugin.command('&delete_request', help_text='[Admin] Delete your jugame request', ops=True)
|
||
|
def delete_tilde_request_plugin(msg):
|
||
|
if (msg.nick not in msg.ops and not util.tilde.DEBUG) and (not msg.nick in util.tilde.challenges):
|
||
|
return
|
||
|
del util.tilde.challenges[msg.nick]
|
||
|
return pinhook.plugin.message("Deleted")
|
||
|
|
||
|
@pinhook.plugin.command('!tilde', help_text='Alias -- &tilde')
|
||
|
@pinhook.plugin.command('&tilde', help_text='Play the tildegame!')
|
||
|
def tilde_plugin(msg):
|
||
|
if util.tilde.ADMIN_ONLY and msg.nick not in msg.ops:
|
||
|
return
|
||
|
if msg.channel != util.tilde.GOOD_CHAN and not util.tilde.DEBUG:
|
||
|
return pinhook.plugin.message("{} is a meanie and gets no tildes. **ju only gives out tildes in the {} channel.**".format(msg.nick, util.tilde.GOOD_CHAN))
|
||
|
if msg.nick not in util.tilde.challenges:
|
||
|
challenge = util.tilde.challenge(msg.channel, msg.nick, msg.timestamp)
|
||
|
return pinhook.plugin.message(challenge)
|
||
|
|
||
|
@pinhook.plugin.listener('tilde_guess')
|
||
|
def tilde_guess_plugin(msg):
|
||
|
if util.tilde.ADMIN_ONLY and msg.nick not in msg.ops:
|
||
|
return
|
||
|
if msg.nick in util.tilde.challenges and (msg.channel == util.tilde.GOOD_CHAN or util.tilde.DEBUG) and not msg.text.startswith('!'):
|
||
|
chalres = util.tilde.challenge_response(msg.nick, msg.timestamp, msg.text)
|
||
|
resp = pinhook.plugin.message(chalres[0])
|
||
|
return resp
|
||
|
|