|
|
@@ -1,32 +1,39 @@
|
|
|
import random
|
|
|
-from common import font
|
|
|
+from common import font, queries
|
|
|
from commands.common import CommandHelpers as CH
|
|
|
from commands.common import GameHelpers
|
|
|
|
|
|
-def do_command(self, connection, event):
|
|
|
+def do_command(self, connection, event, user, channel):
|
|
|
cmdtype, trigger, command, replyto = CH.disect_command(self, event)
|
|
|
|
|
|
+ # Do nothing if it's not a type of command.
|
|
|
+ if not cmdtype:
|
|
|
+ return
|
|
|
+
|
|
|
# Do nothing if there is no command.
|
|
|
if not command:
|
|
|
return
|
|
|
+
|
|
|
+ # The first word of the command sting with arguments, is just the command without arguments.
|
|
|
try:
|
|
|
- command.split()[0]
|
|
|
+ one = command.split()[0] # Get raw command.
|
|
|
except:
|
|
|
return
|
|
|
|
|
|
# Do noting if the games channel function is off and it's a channel message.
|
|
|
- if not self.db.one("SELECT games FROM channels WHERE name='" + event.target + "' AND network='" + self.network + "'") and not event.target == connection.get_nickname():
|
|
|
- return
|
|
|
+ if event.target != connection.get_nickname(): # Command issued to channel.
|
|
|
+ if not queries.get_channel_setting_game_commands: # Games are turned off in channel settigns.
|
|
|
+ return # Do nothing.
|
|
|
|
|
|
- if command == "cmd" or command == "cmds" or command == "commands":
|
|
|
- if cmdtype == "cmd":
|
|
|
- connection.privmsg(replyto, font.grey + "Games: " + CH.ccc(self, "8ball") + CH.ccc(self, "dice") + CH.ccc(self, "player") + CH.ccc(self, "players") + CH.ccc(self, "levelup") + CH.ccc(self, "givecoin")[:-2] + ".")
|
|
|
- connection.privmsg(replyto, font.grey + "Game help: " + blue + self.helpchar + "level" + font.grey + ", " + blue + self.helpchar + "xp" + font.grey + ", " + blue + self.helpchar + "ap" + font.grey + ", " + blue + self.helpchar + "coin" + font.grey + ", " + blue + self.helpchar + "karma" + font.grey + ".")
|
|
|
+ if command == 'cmd' or command == 'cmds' or command == 'commands':
|
|
|
+ if cmdtype == 'cmd':
|
|
|
+ connection.privmsg(replyto, '%sGames: %s %s' % (font.grey, CH.ccc(self, "8ball"), CH.ccc(self, "dice")[:-2]))#, CH.ccc(self, "player"), CH.ccc(self, "players"), CH.ccc(self, "levelup") ,CH.ccc(self, "givecoin")[:-2]))
|
|
|
+ #connection.privmsg(replyto, font.grey + "Game help: " + font.blue + self.network.help_character + "level" + font.grey + ", " + font.blue + self.network.help_character + "xp" + font.grey + ", " + font.blue + self.network.help_character + "ap" + font.grey + ", " + font.blue + self.network.help_character + "coin" + font.grey + ", " + font.blue + self.network.help_character + "karma" + font.grey + ".")
|
|
|
|
|
|
elif command.split()[0] == "8ball":
|
|
|
if cmdtype == "help": #Display help text.
|
|
|
connection.privmsg(replyto, "Ask a question of the mighty and illusive 8-Ball.")
|
|
|
- connection.privmsg(replyto, font.grey + "Usage: " + blue + self.cmdchar + "8ball " + font.reset + font.italic + "question")
|
|
|
+ connection.privmsg(replyto, font.grey + "Usage: " + font.blue + self.network.command_character + "8ball " + font.reset + font.italic + "question")
|
|
|
elif cmdtype == "cmd":
|
|
|
|
|
|
if len(command.split()) < 2: # Command contains only !8ball.
|
|
|
@@ -37,7 +44,7 @@ def do_command(self, connection, event):
|
|
|
"You want me to predict nothing?",
|
|
|
"Are you intentionally not asking a question?",
|
|
|
"Ask a question you tease!",
|
|
|
- "You do not seem to grasp this, for help type: " + blue + self.helpchar + "8ball",
|
|
|
+ "You do not seem to grasp this, for help type: " + font.blue + self.network.help_character + "8ball",
|
|
|
"You will die alone.",
|
|
|
]
|
|
|
connection.privmsg(replyto, random.choice(messages))
|
|
|
@@ -73,8 +80,8 @@ def do_command(self, connection, event):
|
|
|
if len(command.split()) != 1:
|
|
|
return
|
|
|
connection.privmsg(replyto, "Rolls multiple dices of chosen type. Specifying type or amount is optional.")
|
|
|
- connection.privmsg(replyto, font.grey + "Usage: " + blue + self.cmdchar + "dice " + font.reset + font.italic + "amount type")
|
|
|
- connection.privmsg(replyto, font.grey + "Example: " + blue + self.cmdchar + "dice " + font.reset + font.italic + "2 d10")
|
|
|
+ connection.privmsg(replyto, font.grey + "Usage: " + font.blue + self.network.command_character + "dice " + font.reset + font.italic + "amount type")
|
|
|
+ connection.privmsg(replyto, font.grey + "Example: " + font.blue + self.network.command_character + "dice " + font.reset + font.italic + "2 d10")
|
|
|
connection.privmsg(replyto, font.grey + "Note: " + font.reset + "The dice type is specified as a " + font.italic + "d " + font.reset + "followed by the amount of sides.")
|
|
|
elif cmdtype == "cmd":
|
|
|
|
|
|
@@ -89,14 +96,14 @@ def do_command(self, connection, event):
|
|
|
try:
|
|
|
dicetype = int(command.split()[1][1:])
|
|
|
except ValueError: # "d" not followd by interger.
|
|
|
- connection.privmsg(replyto, "Invalid number or type of dice. For help type: " + blue + self.helpchar + "dice" + font.reset + ".")
|
|
|
+ connection.privmsg(replyto, "Invalid number or type of dice. For help type: " + font.blue + self.network.help_character + "dice" + font.reset + ".")
|
|
|
return
|
|
|
if dicetype < 1:
|
|
|
connection.action(replyto, "can not create objects with less then one side.")
|
|
|
else:
|
|
|
connection.privmsg(replyto, str(GameHelpers.roll_dice(1, dicetype)[0]))
|
|
|
else: # Argument does not start with "d" and is not an integer.
|
|
|
- connection.privmsg(replyto, "Invalid number or type of dice. For help type: " + blue + self.helpchar + "dice" + font.reset + ".")
|
|
|
+ connection.privmsg(replyto, "Invalid number or type of dice. For help type: " + font.blue + self.network.help_character + "dice" + font.reset + ".")
|
|
|
return
|
|
|
if diceamount < 1:
|
|
|
connection.privmsg(replyto, "Rolling " + font.bold + "no " + font.reset + "dice.")
|
|
|
@@ -108,12 +115,12 @@ def do_command(self, connection, event):
|
|
|
try:
|
|
|
diceamount = int(command.split()[1])
|
|
|
except ValueError: # First argument not an integer.
|
|
|
- connection.privmsg(replyto, "Invalid number of dice. For help type: " + blue + self.helpchar + "dice" + font.reset + ".")
|
|
|
+ connection.privmsg(replyto, "Invalid number of dice. For help type: " + font.blue + self.network.help_character + "dice" + font.reset + ".")
|
|
|
return
|
|
|
try:
|
|
|
dicetype = int(command.split()[2][1:])
|
|
|
except ValueError: # Second argument not a dice type.
|
|
|
- connection.privmsg(replyto, "Invalid type of dice. For help type: " + blue + self.helpchar + "dice" + font.reset + ".")
|
|
|
+ connection.privmsg(replyto, "Invalid type of dice. For help type: " + font.blue + self.network.help_character + "dice" + font.reset + ".")
|
|
|
return
|
|
|
if diceamount < 1:
|
|
|
connection.privmsg(replyto, "Rolling " + font.bold + "no " + font.reset + "dice.")
|
|
|
@@ -126,176 +133,176 @@ def do_command(self, connection, event):
|
|
|
else:
|
|
|
connection.privmsg(replyto, ", ".join(str(rolls) for rolls in GameHelpers.roll_dice(diceamount, dicetype)) + ".") # Roll x amount of x type dice.
|
|
|
else: # Invalid amount of arguments.
|
|
|
- connection.privmsg(replyto, "Too many arguments. For help type: " + blue + self.helpchar + "dice" + font.reset + ".")
|
|
|
-
|
|
|
- elif command.split()[0] == "player":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Displays a users game statistics. User optional.")
|
|
|
- elif cmdtype == "cmd":
|
|
|
-
|
|
|
- if len(command.split()) == 1:
|
|
|
- user = event.source.nick.lower()
|
|
|
- message = font.grey + "Your statistics. " + reset
|
|
|
- elif len(command.split()) == 2:
|
|
|
- user = command.split()[1]
|
|
|
- if not self.db.one("SELECT id FROM users WHERE LOWER(name)=%s AND network='" + self.network + "'", (user, )):
|
|
|
- connection.action(replyto, "does not know of a " + font.red + trigger.split()[1] + font.reset + ".")
|
|
|
- return
|
|
|
- if user == connection.get_nickname().lower():
|
|
|
- connection.privmsg(replyto, "The game does not play the master.")
|
|
|
- return
|
|
|
- if user == event.source.nick.lower():
|
|
|
- message = font.grey + "Your statistics. " + reset
|
|
|
- else:
|
|
|
- message = font.grey + "Statistics for " + font.red + trigger.split()[1] + font.reset + ". "
|
|
|
- else:
|
|
|
- connection.privmsg(replyto, "Too many arguments, For help type " + blue + self.helpchar + "players " + font.reset + ".")
|
|
|
- return
|
|
|
-
|
|
|
- level, xp, xpspent, totalxp, karma, coin, coinspent, coingiven, ap, apspent = GameHelpers.get_info(self, user)
|
|
|
- if ap < 0:
|
|
|
- ap = 0
|
|
|
- info = GameHelpers.player_info(self, user)
|
|
|
- connection.privmsg(replyto, message + info)
|
|
|
-
|
|
|
- elif command.split()[0] == "levelup":
|
|
|
- user = event.source.nick.lower()
|
|
|
- level, xp, xpspent, totalxp, karma, coin, coinspent, coingiven, ap, apspent = GameHelpers.get_info(self, user)
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Spend " + str(int(level * 2.7)) + " XP to gain your next level. Gain multiple levels (for the price of the lowest level) by specifying the amount.")
|
|
|
- elif cmdtype == "cmd":
|
|
|
- if len(command.split()) == 1:
|
|
|
- if xp < int(level * 2.7):
|
|
|
- connection.privmsg(replyto, "Insufficient XP, you need at least " + str(int(level * 2.7)) + ".")
|
|
|
- elif ap < 1:
|
|
|
- connection.privmsg(replyto, "Insufficient AP, you need at least 1.")
|
|
|
- else:
|
|
|
- self.db.run("UPDATE users SET level=level+1, xp_spent=xp_spent+%s, ap_spent=ap_spent+1 WHERE LOWER(name)=%s AND network=%s", (int(level * 2.7), user, self.network, ))
|
|
|
- self.db.run("UPDATE users SET coin=coin+0.3 WHERE level>0 AND network=%s", (self.network, ))
|
|
|
- info = GameHelpers.player_info(self, user)
|
|
|
- connection.privmsg(replyto, "Your new statistics: " + info)
|
|
|
- elif len(command.split()) == 2:
|
|
|
- try:
|
|
|
- levels = int(command.split()[1])
|
|
|
- except:
|
|
|
- connection.privmsg(replyto, "Invalid amount.")
|
|
|
- return
|
|
|
- if levels < 1:
|
|
|
- connection.privmsg(replyto, "Invalid amount.")
|
|
|
- elif xp < int(level * 2.7):
|
|
|
- connection.privmsg(replyto, "Insufficient XP, you need at least " + str(int(level * 2.7)) + ".")
|
|
|
- elif ap < levels:
|
|
|
- connection.privmsg(replyto, "Insufficient AP, you need at least 1.")
|
|
|
- else:
|
|
|
- self.db.run("UPDATE users SET level=level+%s, xp_spent=xp_spent+%s, ap_spent=ap_spent+%s WHERE LOWER(name)=LOWER(%s) AND network=%s", (levels, int(level * 2.7), levels, user, self.network, ))
|
|
|
- self.db.run("UPDATE users SET coin=coin+%s WHERE level>0 AND network=%s", (levels * 0.3, self.network, ))
|
|
|
- info = GameHelpers.player_info(self, user)
|
|
|
- connection.privmsg(replyto, "Your new statistics: " + info)
|
|
|
- else:
|
|
|
- connection.privmsg(replyto, "Too many arguments. For help type " + blue + self.helpchar + "levelup " + font.reset + ".")
|
|
|
-
|
|
|
- elif command.split()[0] == "givecoin":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Give coins to another player. Amount optional.")
|
|
|
- connection.privmsg(replyto, font.grey + "Usage: " + blue + self.cmdchar + "givecoin " + font.reset + font.italic + "user amount")
|
|
|
- elif cmdtype == "cmd":
|
|
|
+ connection.privmsg(replyto, "Too many arguments. For help type: " + font.blue + self.network.help_character + "dice" + font.reset + ".")
|
|
|
|
|
|
- if len(command.split()) == 1:
|
|
|
- connection.privmsg(replyto, "Insufficient arguments. For help type " + blue + self.helpchar + "givecoin" + font.reset + ".")
|
|
|
- return
|
|
|
- elif len(command.split()) > 3:
|
|
|
- connection.privmsg(replyto, "Too many arguments. For help type " + blue + self.helpchar + "givecoin" + font.reset + ".")
|
|
|
- return
|
|
|
- elif command.split()[1] == event.source.nick.lower():
|
|
|
- connection.privmsg(replyto, "You already have your own coin. For help type " + blue + self.helpchar + "givecoin" + font.reset + ".")
|
|
|
- return
|
|
|
- elif len(command.split()) == 3:
|
|
|
- stop = False
|
|
|
- try:
|
|
|
- if float(command.split()[2]) < 0:
|
|
|
- connection.privmsg(replyto, "You clever abuser! The " + font.red + self.cmdchar + font.bold + "give" + font.bold + "coin" + font.reset + " command is not designed for robbing. There will be consequences...")
|
|
|
- self.db.run("UPDATE users SET coin=coin-3, karma_correction=karma_correction-0.5 WHERE name=%s AND network=%s", (event.source.nick, self.network))
|
|
|
- stop = True
|
|
|
- except TypeError:
|
|
|
- connection.privmsg(replyto, "Invalid amount. For help type " + blue + self.helpchar + "givecoin" + font.reset + ".")
|
|
|
- return
|
|
|
- if stop:
|
|
|
- return
|
|
|
- elif not event.target == connection.get_nickname():
|
|
|
- if not command.split()[1] in self.channels[event.target].users():
|
|
|
- connection.privmsg(replyto, font.red + trigger.split()[1] + font.reset + " is not present.")
|
|
|
- return
|
|
|
-
|
|
|
- level, xp, xpspent, totalxp, karma, coin, coinspent, coingiven, ap, apspent = GameHelpers.get_info(self, event.source.nick)
|
|
|
- receivingrecord = self.db.one("SELECT level, away FROM users WHERE LOWER(name)=%s AND network=%s", (command.split()[1], self.network, ))
|
|
|
- if level < 1:
|
|
|
- connection.privmsg(replyto, "You need to " + blue + self.cmdchar + "levelup " + font.reset + "to be able to give coin.")
|
|
|
- return
|
|
|
- elif coin < 1:
|
|
|
- connection.privmsg(replyto, "You have no coin to give.")
|
|
|
- return
|
|
|
- elif not receivingrecord:
|
|
|
- connection.action(replyto, "does not know of any \"" + font.red + trigger.split()[1] + font.reset + "\".")
|
|
|
- return
|
|
|
- elif receivingrecord[0] == 0:
|
|
|
- connection.privmsg(replyto, font.red + trigger.split()[1] + font.reset + " is not playing the game.")
|
|
|
- return
|
|
|
- elif receivingrecord[1] == True:
|
|
|
- connection.privmsg(replyto, font.red + trigger.split()[1] + font.reset + "is not here right now.")
|
|
|
- return
|
|
|
- elif ap < 1:
|
|
|
- connection.privmsg(replyto, "You have no action points, go use IRC some more...")
|
|
|
- return
|
|
|
- if len(command.split()) == 2:
|
|
|
- self.db.run("UPDATE users SET coin=coin-1, coin_spent=coin_spent+1, coin_given=coin_given+1, ap_spent=ap_spent+1 WHERE name=%s AND network=%s", (event.source.nick, self.network, ))
|
|
|
- self.db.run("UPDATE users SET coin=coin+1 WHERE LOWER(name)=%s AND network=%s", (command.split()[1], self.network, ))
|
|
|
- elif len(command.split()) == 3:
|
|
|
- self.db.run("UPDATE users SET coin=coin-%s, coin_spent=coin_spent+%s, coin_given=coin_given+%s, ap_spent=ap_spent+1 WHERE name=%s AND network=%s", (command.split()[2], command.split()[2], command.split()[2], event.source.nick, self.network, ))
|
|
|
- self.db.run("UPDATE users SET coin=coin+%s WHERE LOWER(name)=%s AND network=%s", (command.split()[2], command.split()[1], self.network))
|
|
|
- info = GameHelpers.player_info(self, event.source.nick)
|
|
|
- connection.notice(event.source.nick, "Your new statistics: " + info)
|
|
|
-
|
|
|
- elif command.split()[0] == "players":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Display top player rankings.")
|
|
|
- elif cmdtype == "cmd":
|
|
|
-
|
|
|
- toplevel = GameHelpers.list_top_players(self, "level")
|
|
|
- if toplevel:
|
|
|
- connection.notice(event.source.nick, "Ranking level: " + toplevel)
|
|
|
- topxp = GameHelpers.list_top_players(self, "xp_spent")
|
|
|
- if topxp:
|
|
|
- connection.notice(event.source.nick, "Ranking experience: " + topxp)
|
|
|
- topcoin = GameHelpers.list_top_players(self, "coin")
|
|
|
- if topcoin:
|
|
|
- connection.notice(event.source.nick, "Ranking wealth: " + topcoin)
|
|
|
- if not toplevel and not topxp and not topcoin:
|
|
|
- connection.privmsg(replyto, "Nobody is playing the game.")
|
|
|
-
|
|
|
- elif command.split()[0] == "level":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "For 10 XP you can use !levelup to gain a level. As your level increases, things become more difficult, while more capabilities and options are unlocked.")
|
|
|
- elif command.split()[0] == "xp":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "XP is earned by using IRC and playing the game, in channels with " + font.red + connection.get_nickname() + font.reset + ". Ask any operator in " + font.red + self.homechannel + font.reset + " to add a channel. XP is used to level up, advance classes, as a limit and as a multiplier. Once XP is expended it keeps counting towards your total.")
|
|
|
- elif command.split()[0] == "ap":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "AP is earned by using IRC and playing the game in channels with " + font.red + connection.get_nickname() + font.reset + ". Ask any operator in " + font.red + self.homechannel + font.reset + " to add a channel. AP is expended for every action you take in the game.")
|
|
|
- elif command.split()[0] == "coin":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Coin is earned when certain events occur, for instance when a player expends XP. Coin is used to buy items and classes. To give a player coin use " + blue + self.cmdchar + "givecoin" + font.reset + ". Coin affects karma.")
|
|
|
- elif command.split()[0] == "karma":
|
|
|
- if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Karma is a secret formula, based upon on your IRC events and how you play the game. It does not increase like XP. Some events, skills and items are karma based.")
|
|
|
+ # elif command.split()[0] == "player":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "Displays a users game statistics. User optional.")
|
|
|
+ # elif cmdtype == "cmd":
|
|
|
+ #
|
|
|
+ # if len(command.split()) == 1:
|
|
|
+ # user = event.source.nick.lower()
|
|
|
+ # message = font.grey + "Your statistics. " + reset
|
|
|
+ # elif len(command.split()) == 2:
|
|
|
+ # user = command.split()[1]
|
|
|
+ # if not self.db.one("SELECT id FROM users WHERE LOWER(name)=%s AND network='" + self.network + "'", (user, )):
|
|
|
+ # connection.action(replyto, "does not know of a " + font.red + trigger.split()[1] + font.reset + ".")
|
|
|
+ # return
|
|
|
+ # if user == connection.get_nickname().lower():
|
|
|
+ # connection.privmsg(replyto, "The game does not play the master.")
|
|
|
+ # return
|
|
|
+ # if user == event.source.nick.lower():
|
|
|
+ # message = font.grey + "Your statistics. " + reset
|
|
|
+ # else:
|
|
|
+ # message = font.grey + "Statistics for " + font.red + trigger.split()[1] + font.reset + ". "
|
|
|
+ # else:
|
|
|
+ # connection.privmsg(replyto, "Too many arguments, For help type " + font.blue + self.network.help_character + "players " + font.reset + ".")
|
|
|
+ # return
|
|
|
+ #
|
|
|
+ # level, xp, xpspent, totalxp, karma, coin, coinspent, coingiven, ap, apspent = GameHelpers.get_info(self, user)
|
|
|
+ # if ap < 0:
|
|
|
+ # ap = 0
|
|
|
+ # info = GameHelpers.player_info(self, user)
|
|
|
+ # connection.privmsg(replyto, message + info)
|
|
|
+ #
|
|
|
+ # elif command.split()[0] == "levelup":
|
|
|
+ # user = event.source.nick.lower()
|
|
|
+ # level, xp, xpspent, totalxp, karma, coin, coinspent, coingiven, ap, apspent = GameHelpers.get_info(self, user)
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "Spend " + str(int(level * 2.7)) + " XP to gain your next level. Gain multiple levels (for the price of the lowest level) by specifying the amount.")
|
|
|
+ # elif cmdtype == "cmd":
|
|
|
+ # if len(command.split()) == 1:
|
|
|
+ # if xp < int(level * 2.7):
|
|
|
+ # connection.privmsg(replyto, "Insufficient XP, you need at least " + str(int(level * 2.7)) + ".")
|
|
|
+ # elif ap < 1:
|
|
|
+ # connection.privmsg(replyto, "Insufficient AP, you need at least 1.")
|
|
|
+ # else:
|
|
|
+ # self.db.run("UPDATE users SET level=level+1, xp_spent=xp_spent+%s, ap_spent=ap_spent+1 WHERE LOWER(name)=%s AND network=%s", (int(level * 2.7), user, self.network, ))
|
|
|
+ # self.db.run("UPDATE users SET coin=coin+0.3 WHERE level>0 AND network=%s", (self.network, ))
|
|
|
+ # info = GameHelpers.player_info(self, user)
|
|
|
+ # connection.privmsg(replyto, "Your new statistics: " + info)
|
|
|
+ # elif len(command.split()) == 2:
|
|
|
+ # try:
|
|
|
+ # levels = int(command.split()[1])
|
|
|
+ # except:
|
|
|
+ # connection.privmsg(replyto, "Invalid amount.")
|
|
|
+ # return
|
|
|
+ # if levels < 1:
|
|
|
+ # connection.privmsg(replyto, "Invalid amount.")
|
|
|
+ # elif xp < int(level * 2.7):
|
|
|
+ # connection.privmsg(replyto, "Insufficient XP, you need at least " + str(int(level * 2.7)) + ".")
|
|
|
+ # elif ap < levels:
|
|
|
+ # connection.privmsg(replyto, "Insufficient AP, you need at least 1.")
|
|
|
+ # else:
|
|
|
+ # self.db.run("UPDATE users SET level=level+%s, xp_spent=xp_spent+%s, ap_spent=ap_spent+%s WHERE LOWER(name)=LOWER(%s) AND network=%s", (levels, int(level * 2.7), levels, user, self.network, ))
|
|
|
+ # self.db.run("UPDATE users SET coin=coin+%s WHERE level>0 AND network=%s", (levels * 0.3, self.network, ))
|
|
|
+ # info = GameHelpers.player_info(self, user)
|
|
|
+ # connection.privmsg(replyto, "Your new statistics: " + info)
|
|
|
+ # else:
|
|
|
+ # connection.privmsg(replyto, "Too many arguments. For help type " + font.blue + self.network.help_character + "levelup " + font.reset + ".")
|
|
|
+ #
|
|
|
+ # elif command.split()[0] == "givecoin":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "Give coins to another player. Amount optional.")
|
|
|
+ # connection.privmsg(replyto, font.grey + "Usage: " + font.blue + self.network.command_character + "givecoin " + font.reset + font.italic + "user amount")
|
|
|
+ # elif cmdtype == "cmd":
|
|
|
+ #
|
|
|
+ # if len(command.split()) == 1:
|
|
|
+ # connection.privmsg(replyto, "Insufficient arguments. For help type " + font.blue + self.network.help_character + "givecoin" + font.reset + ".")
|
|
|
+ # return
|
|
|
+ # elif len(command.split()) > 3:
|
|
|
+ # connection.privmsg(replyto, "Too many arguments. For help type " + font.blue + self.network.help_character + "givecoin" + font.reset + ".")
|
|
|
+ # return
|
|
|
+ # elif command.split()[1] == event.source.nick.lower():
|
|
|
+ # connection.privmsg(replyto, "You already have your own coin. For help type " + font.blue + self.network.help_character + "givecoin" + font.reset + ".")
|
|
|
+ # return
|
|
|
+ # elif len(command.split()) == 3:
|
|
|
+ # stop = False
|
|
|
+ # try:
|
|
|
+ # if float(command.split()[2]) < 0:
|
|
|
+ # connection.privmsg(replyto, "You clever abuser! The " + font.red + self.network.command_character + font.bold + "give" + font.bold + "coin" + font.reset + " command is not designed for robbing. There will be consequences...")
|
|
|
+ # self.db.run("UPDATE users SET coin=coin-3, karma_correction=karma_correction-0.5 WHERE name=%s AND network=%s", (event.source.nick, self.network))
|
|
|
+ # stop = True
|
|
|
+ # except TypeError:
|
|
|
+ # connection.privmsg(replyto, "Invalid amount. For help type " + font.blue + self.network.help_character + "givecoin" + font.reset + ".")
|
|
|
+ # return
|
|
|
+ # if stop:
|
|
|
+ # return
|
|
|
+ # elif not event.target == connection.get_nickname():
|
|
|
+ # if not command.split()[1] in self.channels[event.target].users():
|
|
|
+ # connection.privmsg(replyto, font.red + trigger.split()[1] + font.reset + " is not present.")
|
|
|
+ # return
|
|
|
+ #
|
|
|
+ # level, xp, xpspent, totalxp, karma, coin, coinspent, coingiven, ap, apspent = GameHelpers.get_info(self, event.source.nick)
|
|
|
+ # receivingrecord = self.db.one("SELECT level, away FROM users WHERE LOWER(name)=%s AND network=%s", (command.split()[1], self.network, ))
|
|
|
+ # if level < 1:
|
|
|
+ # connection.privmsg(replyto, "You need to " + font.blue + self.network.command_character + "levelup " + font.reset + "to be able to give coin.")
|
|
|
+ # return
|
|
|
+ # elif coin < 1:
|
|
|
+ # connection.privmsg(replyto, "You have no coin to give.")
|
|
|
+ # return
|
|
|
+ # elif not receivingrecord:
|
|
|
+ # connection.action(replyto, "does not know of any \"" + font.red + trigger.split()[1] + font.reset + "\".")
|
|
|
+ # return
|
|
|
+ # elif receivingrecord[0] == 0:
|
|
|
+ # connection.privmsg(replyto, font.red + trigger.split()[1] + font.reset + " is not playing the game.")
|
|
|
+ # return
|
|
|
+ # elif receivingrecord[1] == True:
|
|
|
+ # connection.privmsg(replyto, font.red + trigger.split()[1] + font.reset + "is not here right now.")
|
|
|
+ # return
|
|
|
+ # elif ap < 1:
|
|
|
+ # connection.privmsg(replyto, "You have no action points, go use IRC some more...")
|
|
|
+ # return
|
|
|
+ # if len(command.split()) == 2:
|
|
|
+ # self.db.run("UPDATE users SET coin=coin-1, coin_spent=coin_spent+1, coin_given=coin_given+1, ap_spent=ap_spent+1 WHERE name=%s AND network=%s", (event.source.nick, self.network, ))
|
|
|
+ # self.db.run("UPDATE users SET coin=coin+1 WHERE LOWER(name)=%s AND network=%s", (command.split()[1], self.network, ))
|
|
|
+ # elif len(command.split()) == 3:
|
|
|
+ # self.db.run("UPDATE users SET coin=coin-%s, coin_spent=coin_spent+%s, coin_given=coin_given+%s, ap_spent=ap_spent+1 WHERE name=%s AND network=%s", (command.split()[2], command.split()[2], command.split()[2], event.source.nick, self.network, ))
|
|
|
+ # self.db.run("UPDATE users SET coin=coin+%s WHERE LOWER(name)=%s AND network=%s", (command.split()[2], command.split()[1], self.network))
|
|
|
+ # info = GameHelpers.player_info(self, event.source.nick)
|
|
|
+ # connection.notice(event.source.nick, "Your new statistics: " + info)
|
|
|
+ #
|
|
|
+ # elif command.split()[0] == "players":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "Display top player rankings.")
|
|
|
+ # elif cmdtype == "cmd":
|
|
|
+ #
|
|
|
+ # toplevel = GameHelpers.list_top_players(self, "level")
|
|
|
+ # if toplevel:
|
|
|
+ # connection.notice(event.source.nick, "Ranking level: " + toplevel)
|
|
|
+ # topxp = GameHelpers.list_top_players(self, "xp_spent")
|
|
|
+ # if topxp:
|
|
|
+ # connection.notice(event.source.nick, "Ranking experience: " + topxp)
|
|
|
+ # topcoin = GameHelpers.list_top_players(self, "coin")
|
|
|
+ # if topcoin:
|
|
|
+ # connection.notice(event.source.nick, "Ranking wealth: " + topcoin)
|
|
|
+ # if not toplevel and not topxp and not topcoin:
|
|
|
+ # connection.privmsg(replyto, "Nobody is playing the game.")
|
|
|
+ #
|
|
|
+ # elif command.split()[0] == "level":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "For 10 XP you can use !levelup to gain a level. As your level increases, things become more difficult, while more capabilities and options are unlocked.")
|
|
|
+ # elif command.split()[0] == "xp":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "XP is earned by using IRC and playing the game, in channels with " + font.red + connection.get_nickname() + font.reset + ". Ask any operator in " + font.red + self.homechannel + font.reset + " to add a channel. XP is used to level up, advance classes, as a limit and as a multiplier. Once XP is expended it keeps counting towards your total.")
|
|
|
+ # elif command.split()[0] == "ap":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "AP is earned by using IRC and playing the game in channels with " + font.red + connection.get_nickname() + font.reset + ". Ask any operator in " + font.red + self.homechannel + font.reset + " to add a channel. AP is expended for every action you take in the game.")
|
|
|
+ # elif command.split()[0] == "coin":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "Coin is earned when certain events occur, for instance when a player expends XP. Coin is used to buy items and classes. To give a player coin use " + font.blue + self.network.command_character + "givecoin" + font.reset + ". Coin affects karma.")
|
|
|
+ # elif command.split()[0] == "karma":
|
|
|
+ # if cmdtype == "help": #Display help text.
|
|
|
+ # connection.privmsg(replyto, "Karma is a secret formula, based upon on your IRC events and how you play the game. It does not increase like XP. Some events, skills and items are karma based.")
|
|
|
|
|
|
# elif command.split()[0] == "classup":
|
|
|
# if cmdtype == "help": #Display help text.
|
|
|
-# connection.privmsg(replyto, "Spend 10 XP to gain a class in your current level. List available classes with " + blue + self.helpchar + "classup available " + font.reset + ".")
|
|
|
-# connection.privmsg(replyto, font.grey + "Usage: " + blue + self.cmdchar + "classup " + font.reset + font.italic + "class")
|
|
|
+# connection.privmsg(replyto, "Spend 10 XP to gain a class in your current level. List available classes with " + font.blue + self.network.help_character + "classup available " + font.reset + ".")
|
|
|
+# connection.privmsg(replyto, font.grey + "Usage: " + font.blue + self.network.command_character + "classup " + font.reset + font.italic + "class")
|
|
|
# elif cmdtype == "cmd":
|
|
|
#
|
|
|
# if len(command.split()) == 1:
|
|
|
-# connection.privmsg(replyto, "Insufficient arguments. For help type " + blue + self.helpchar + "classup" + font.reset + ".")
|
|
|
+# connection.privmsg(replyto, "Insufficient arguments. For help type " + font.blue + self.network.help_character + "classup" + font.reset + ".")
|
|
|
# if len(command.split()) == 2:
|
|
|
# if command.split()[1] == "available":
|
|
|
# level, xp, xpspent, karma = GameHelpers.get_info(self, event.source.nick)
|
|
|
@@ -313,4 +320,4 @@ def do_command(self, connection, event):
|
|
|
# connection.privmsg(replyto, "Level 4 classes: ")
|
|
|
# else:
|
|
|
# else:
|
|
|
-# connection.privmsg(replyto, "Too many arguments. For help type " + blue + self.helpchar + "classup" + font.reset + ".")
|
|
|
+# connection.privmsg(replyto, "Too many arguments. For help type " + font.blue + self.network.help_character + "classup" + font.reset + ".")
|