Compare commits
4 Commits
5458b23efb
...
9cbe6b4d1d
Author | SHA1 | Date |
---|---|---|
Julian Marcos | 9cbe6b4d1d | |
Julian Marcos | 0123d4d4dd | |
Julian Marcos | 09b934ee37 | |
Julian Marcos | 862c9360b1 |
|
@ -2,10 +2,6 @@
|
||||||
|
|
||||||
import pinhook.plugin
|
import pinhook.plugin
|
||||||
import util.tilde
|
import util.tilde
|
||||||
import subprocess
|
|
||||||
from random import randint
|
|
||||||
from decimal import Decimal,ROUND_DOWN,ROUND_UP
|
|
||||||
CTR = {}
|
|
||||||
|
|
||||||
@pinhook.plugin.command('&tildescore', help_text='See how many tildes you have with ju.')
|
@pinhook.plugin.command('&tildescore', help_text='See how many tildes you have with ju.')
|
||||||
@pinhook.plugin.command('&ts', help_text='Alias -- &tildescore')
|
@pinhook.plugin.command('&ts', help_text='Alias -- &tildescore')
|
||||||
|
@ -16,49 +12,6 @@ def tildescore_plugin(msg):
|
||||||
def jackpot_plugin(msg):
|
def jackpot_plugin(msg):
|
||||||
return pinhook.plugin.message(util.tilde.show_jackpot())
|
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='Alias -- &tilde')
|
||||||
@pinhook.plugin.command('&tilde', help_text='Play the tildegame!')
|
@pinhook.plugin.command('&tilde', help_text='Play the tildegame!')
|
||||||
def tilde_plugin(msg):
|
def tilde_plugin(msg):
|
||||||
|
@ -68,7 +21,6 @@ def tilde_plugin(msg):
|
||||||
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))
|
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:
|
if msg.nick not in util.tilde.challenges:
|
||||||
challenge = util.tilde.challenge(msg.channel, msg.nick, msg.timestamp)
|
challenge = util.tilde.challenge(msg.channel, msg.nick, msg.timestamp)
|
||||||
#return pinhook.plugin.message("{} (bonus {})".format(challenge,util.tilde.challenges[msg.nick][1]))
|
|
||||||
return pinhook.plugin.message(challenge)
|
return pinhook.plugin.message(challenge)
|
||||||
|
|
||||||
@pinhook.plugin.listener('tilde_guess')
|
@pinhook.plugin.listener('tilde_guess')
|
||||||
|
@ -80,39 +32,3 @@ def tilde_guess_plugin(msg):
|
||||||
resp = pinhook.plugin.message(chalres[0])
|
resp = pinhook.plugin.message(chalres[0])
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
@pinhook.plugin.command('&brainwash', help_text='Alias -- &cleanwash')
|
|
||||||
@pinhook.plugin.command('&cleanwash', help_text='Clean your dirty money.')
|
|
||||||
def cleanwash_money(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 washed money. **ju only works in the {} channel.**".format(msg.nick, util.tilde.GOOD_CHAN))
|
|
||||||
with open(util.tilde.SCORE_FILE, "r") as scorefile:
|
|
||||||
time = 0
|
|
||||||
scores = scorefile.readlines()
|
|
||||||
for score in scores:
|
|
||||||
name, score_on_file, timestamp = score.strip("\n").split("&^%")
|
|
||||||
if name == msg.nick:
|
|
||||||
time = int(timestamp.split('.')[0])
|
|
||||||
if time == 0 or time <= 1000: return pinhook.plugin.message("You must waste your time with &tilde twice.")
|
|
||||||
if util.tilde.too_recent(msg.timestamp, time) and not (util.tilde.DEBUG or util.tilde.TIMESKIP): return pinhook.plugin.message("You must wait until being able to use this again.")
|
|
||||||
nick = msg.nick
|
|
||||||
if msg.nick in msg.ops and msg.arg: nick = msg.arg
|
|
||||||
balance = Decimal(subprocess.check_output(['/home/jmjl/bin/coin','Ju','internal_balance',nick],universal_newlines=True))
|
|
||||||
subprocess.check_output(['/home/jmjl/bin/coin','Ju','add_internal_balance',nick,f'-{str(balance)}'],universal_newlines=True).strip()
|
|
||||||
#new_balance=((__import__('random').randint(80,110)/100)*balance).split('.')[0]
|
|
||||||
new_balance = Decimal(randint(80,110))/Decimal(100)*Decimal(balance)
|
|
||||||
new_balance = new_balance.quantize(Decimal('1.'), rounding=ROUND_DOWN)
|
|
||||||
percentage_return = new_balance/balance * Decimal(100)
|
|
||||||
percentage_return = percentage_return.quantize(Decimal('.00'), rounding=ROUND_DOWN)
|
|
||||||
#jackpot_balance=(0.10*balance).split('.')[0]
|
|
||||||
jackpot_balance = (Decimal(0.10)*Decimal(balance)).quantize(Decimal('1.'), rounding=ROUND_DOWN)
|
|
||||||
with open(util.tilde.JACKPOT_FILE, "r+") as jackpotfile:
|
|
||||||
jackpot = int(jackpotfile.readline().strip("\n"))
|
|
||||||
jackpotfile.seek(0)
|
|
||||||
jackpotfile.truncate()
|
|
||||||
jackpot_now = str(jackpot + jackpot_balance)
|
|
||||||
jackpotfile.write(jackpot_now)
|
|
||||||
message = f"Cleanwashed {balance}TCN, and given the user {new_balance}TCN ({percentage_return}%) and contributed {jackpot_balance}TCN to the balance, jackpot at {jackpot_now}TCN"
|
|
||||||
util.tilde.admin_update_tilde(nick,amount=new_balance,time=msg.timestamp,comment=message)
|
|
||||||
return pinhook.plugin.message(message)
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import pinhook.plugin
|
||||||
|
import util.tilde
|
||||||
|
|
||||||
|
@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))
|
||||||
|
|
||||||
|
@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))
|
||||||
|
|
||||||
|
@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))
|
||||||
|
|
||||||
|
|
||||||
|
@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)")
|
||||||
|
|
||||||
|
@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")
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
import pinhook.plugin
|
import pinhook.plugin
|
||||||
#import util.tilde
|
|
||||||
import importlib
|
import importlib
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
@ -11,8 +9,6 @@ def tilde_wait(msg):
|
||||||
found = False
|
found = False
|
||||||
if msg.arg: nicktouse = ''.join(msg.arg.split(' '))
|
if msg.arg: nicktouse = ''.join(msg.arg.split(' '))
|
||||||
else: nicktouse = msg.nick
|
else: nicktouse = msg.nick
|
||||||
# if util.tilde.TIMESKIP:
|
|
||||||
# return pinhook.plugin.message(f"{msg.nick}: You don't have to wait, timeskip is on")
|
|
||||||
with open("/home/jmjl/dev/juju/data/tildescores.txt", "r") as scorefile:
|
with open("/home/jmjl/dev/juju/data/tildescores.txt", "r") as scorefile:
|
||||||
scores = scorefile.readlines()
|
scores = scorefile.readlines()
|
||||||
for score in scores:
|
for score in scores:
|
||||||
|
@ -25,12 +21,10 @@ def tilde_wait(msg):
|
||||||
if timecalc > 1:
|
if timecalc > 1:
|
||||||
return pinhook.plugin.message("{}: wait {} until playing again (talking about {})".format(
|
return pinhook.plugin.message("{}: wait {} until playing again (talking about {})".format(
|
||||||
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc), '\u200b'.join(nicktouse)
|
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc), '\u200b'.join(nicktouse)
|
||||||
#msg.nick, timecalc, '\u200b'.join(nicktouse)
|
|
||||||
))
|
))
|
||||||
else:
|
else:
|
||||||
return pinhook.plugin.message("{}: wasted {} time, *can play* (talking about {})".format(
|
return pinhook.plugin.message("{}: wasted {} time, *can play* (talking about {})".format(
|
||||||
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc * -1), '\u200b'.join(nicktouse))
|
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc * -1), '\u200b'.join(nicktouse))
|
||||||
#msg.nick, timecalc, '\u200b'.join(nicktouse)
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return pinhook.plugin.message("{}: User not found in db (talking about {})".format(msg.nick, '\u200b'.join(nicktouse)))
|
return pinhook.plugin.message("{}: User not found in db (talking about {})".format(msg.nick, '\u200b'.join(nicktouse)))
|
||||||
|
@ -53,12 +47,10 @@ def tildebot_wait(msg):
|
||||||
if timecalc > 1:
|
if timecalc > 1:
|
||||||
return pinhook.plugin.message("{}: wait {} until playing again (talking about {})".format(
|
return pinhook.plugin.message("{}: wait {} until playing again (talking about {})".format(
|
||||||
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc), '\u200b'.join(nicktouse)
|
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc), '\u200b'.join(nicktouse)
|
||||||
#msg.nick, timecalc, '\u200b'.join(nicktouse)
|
|
||||||
))
|
))
|
||||||
else:
|
else:
|
||||||
return pinhook.plugin.message("{}: wasted {} time, *can play* (talking about {})".format(
|
return pinhook.plugin.message("{}: wasted {} time, *can play* (talking about {})".format(
|
||||||
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc * -1), '\u200b'.join(nicktouse))
|
msg.nick, importlib.import_module('datetime').timedelta(seconds=timecalc * -1), '\u200b'.join(nicktouse))
|
||||||
#msg.nick, timecalc, '\u200b'.join(nicktouse)
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return pinhook.plugin.message("{}: User not found in db (talking about {})".format(msg.nick, '\u200b'.join(nicktouse)))
|
return pinhook.plugin.message("{}: User not found in db (talking about {})".format(msg.nick, '\u200b'.join(nicktouse)))
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import pinhook.plugin
|
||||||
|
import util.tilde
|
||||||
|
import subprocess
|
||||||
|
from random import randint
|
||||||
|
from decimal import Decimal,ROUND_DOWN,ROUND_UP
|
||||||
|
|
||||||
|
@pinhook.plugin.command('&brainwash', help_text='Alias -- &cleanwash')
|
||||||
|
@pinhook.plugin.command('&cleanwash', help_text='Clean your dirty money.')
|
||||||
|
def cleanwash_money(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 washed money. **ju only works in the {} channel.**".format(msg.nick, util.tilde.GOOD_CHAN))
|
||||||
|
with open(util.tilde.SCORE_FILE, "r") as scorefile:
|
||||||
|
time = 0
|
||||||
|
scores = scorefile.readlines()
|
||||||
|
for score in scores:
|
||||||
|
name, score_on_file, timestamp = score.strip("\n").split("&^%")
|
||||||
|
if name == msg.nick:
|
||||||
|
time = int(timestamp.split('.')[0])
|
||||||
|
if time == 0 or time <= 1000: return pinhook.plugin.message("You must waste your time with &tilde twice.")
|
||||||
|
if util.tilde.too_recent(msg.timestamp, time) and not (util.tilde.DEBUG or util.tilde.TIMESKIP): return pinhook.plugin.message("You must wait until being able to use this again.")
|
||||||
|
nick = msg.nick
|
||||||
|
if msg.nick in msg.ops and msg.arg: nick = msg.arg
|
||||||
|
balance = Decimal(subprocess.check_output(['/home/jmjl/bin/coin','Ju','internal_balance',nick],universal_newlines=True))
|
||||||
|
subprocess.check_output(['/home/jmjl/bin/coin','Ju','add_internal_balance',nick,f'-{str(balance)}'],universal_newlines=True).strip()
|
||||||
|
new_balance = Decimal(randint(80,110))/Decimal(100)*Decimal(balance)
|
||||||
|
new_balance = new_balance.quantize(Decimal('1.'), rounding=ROUND_DOWN)
|
||||||
|
percentage_return = new_balance/balance * Decimal(100)
|
||||||
|
percentage_return = percentage_return.quantize(Decimal('.00'), rounding=ROUND_DOWN)
|
||||||
|
jackpot_balance = (Decimal(0.10)*Decimal(balance)).quantize(Decimal('1.'), rounding=ROUND_DOWN)
|
||||||
|
with open(util.tilde.JACKPOT_FILE, "r+") as jackpotfile:
|
||||||
|
jackpot = int(jackpotfile.readline().strip("\n"))
|
||||||
|
jackpotfile.seek(0)
|
||||||
|
jackpotfile.truncate()
|
||||||
|
jackpot_now = str(jackpot + jackpot_balance)
|
||||||
|
jackpotfile.write(jackpot_now)
|
||||||
|
message = f"Cleanwashed {balance}TCN, and given the user {new_balance}TCN ({percentage_return}%) and contributed {jackpot_balance}TCN to the balance, jackpot at {jackpot_now}TCN"
|
||||||
|
util.tilde.admin_update_tilde(nick,amount=new_balance,time=msg.timestamp,comment=message)
|
||||||
|
return pinhook.plugin.message(message)
|
Loading…
Reference in New Issue