94 lines
2.8 KiB
Python
94 lines
2.8 KiB
Python
# load me
|
|
|
|
import json
|
|
|
|
def loadJson(self):
|
|
try:
|
|
with open('modules/stonks.json') as json_file:
|
|
data = json.load(json_file)
|
|
self.stonksData = data
|
|
except FileNotFoundError:
|
|
print('not found')
|
|
|
|
def writeJson(self):
|
|
with open('modules/stonks.json', 'w') as outfile:
|
|
json.dump(self.stonksData, outfile)
|
|
|
|
def createToken(self, c, n, m):
|
|
if ''.join(m) in self.stonksData:
|
|
self.say(c, 'that token already exists')
|
|
else:
|
|
m = ''.join(m)
|
|
self.stonksData[m] = {n: 100000}
|
|
self.say(c, 'token {} created!'.format(m))
|
|
|
|
def sendToken(self, c, n, m):
|
|
if self.stonksData[m[2]][n] - float(m[1]) >= 0 and float(m[1]) > 0:
|
|
try:
|
|
self.stonksData[m[2]][m[0]] += float(m[1])
|
|
except:
|
|
self.stonksData[m[2]][m[0]] = float(m[1])
|
|
self.stonksData[m[2]][n] += 0 - float(m[1])
|
|
self.say(c, 'sent!')
|
|
else:
|
|
self.say(c, 'invalid amount dummy thicc')
|
|
|
|
def listTokens(self, c, n, m):
|
|
self.say(c, 'the tokens that exist are '+' '.join(list(self.stonksData.keys())))
|
|
|
|
def nuke(self, c, n, m):
|
|
t = m.pop(0)
|
|
if self.stonksData[t][n] == 100000:
|
|
self.stonksData.pop(t)
|
|
self.say(c, 'removed token {}!'.format(t))
|
|
else:
|
|
self.say(c, 'you must own all of the token to delete it.')
|
|
|
|
def tokenBal(self, c, n, m):
|
|
if len(m) == 1:
|
|
try:
|
|
if m[0] == '*':
|
|
a=''
|
|
for i in [s for s in self.stonksData if n in self.stonksData[s]]:
|
|
a = a + "{}: {}, ".format(i, self.stonksData[i][n])
|
|
self.say(c, 'All your balances: {}'.format(a[:-2]))
|
|
return
|
|
self.say(c, "your balance of {} is {}.".format(m[0], self.stonksData[m[0]][n]))
|
|
except:
|
|
self.say(c, 'you have no {}.'.format(m[0]))
|
|
else:
|
|
try:
|
|
self.say(c, "{}'s balance of {} is {}.".format(m[0], m[1], self.stonksData[m[1]][m[0]]))
|
|
except:
|
|
self.say(c, '{} has no {}.'.format(m[0], m[1]))
|
|
|
|
cmds = {
|
|
"create": createToken,
|
|
"send": sendToken,
|
|
"tip": sendToken,
|
|
"tokens": listTokens,
|
|
"bal": tokenBal,
|
|
"balance": tokenBal,
|
|
"nuke": nuke
|
|
}
|
|
|
|
def parseCommand(self, c,n,m):
|
|
m = m.split()
|
|
m.pop(0)
|
|
cmd = m.pop(0)
|
|
if cmd in cmds:
|
|
loadJson(self)
|
|
cmds[cmd](self, c, n, m)
|
|
writeJson(self)
|
|
else:
|
|
self.say(c,'availible options are create <token>, send <recp> <amount> <token>, tokens, balance [user] <token>')
|
|
|
|
def init(self):
|
|
self.registerCommand('stonks', parseCommand)
|
|
self.registerCommand('stoinks', parseCommand)
|
|
self.registerCommand('stonk', parseCommand)
|
|
self.registerCommand('stocks', parseCommand)
|
|
self.registerHelp('stonks', 'stonks - fake cryptocurrency without a blockchain, do {}stonks help for syntax'.format(self.prefix))
|
|
|
|
|