!join message

This commit is contained in:
Juhani Krekelä 2019-05-10 21:46:39 +03:00
parent d991f3c059
commit f63dc2565b
2 changed files with 38 additions and 8 deletions

View File

@ -173,7 +173,9 @@ def parse_command(message, nick, irc):
send_event((events.kill,))
elif c == '!join':
if args(0) is not None:
if len(message) > 1:
send_event((events.join, nick, ' '.join(message[1:])))
else:
send_event((events.join, nick))
elif c == '!leave':
@ -309,6 +311,8 @@ def parse_command(message, nick, irc):
send('Usage: !%s' % (arg[0]))
elif arg[0] == 'start':
send('Usage: !start [<preset>]')
elif arg[0] == 'join':
send('Usage: !join [<message>]')
elif arg[0] == 'kick':
send('Usage: !kick <nick>')
elif arg[0] == 'card':

View File

@ -28,6 +28,7 @@ class Player:
self.hand = []
self.points = 0
self.message = None
def __repr__(self):
if __name__ == '__main__':
@ -44,6 +45,7 @@ class Rando:
self.hand = []
self.points = 0
self.message = None
def num_need_cards(self, num_blanks):
return num_blanks - len(self.hand) + self.hand.count(None)
@ -251,13 +253,24 @@ def game(send, notice, voice, devoice, get_event):
change_player_nick(old, new)
elif event == events.join:
nick, = args
if nick not in players:
add_player(nick)
voice(nick)
send('%s has joined' % nick)
if len(args) == 2:
nick, message = args
if nick not in players:
add_player(nick)
voice(nick)
players[nick].message = message
send('%s has joined %s' % (nick, message))
else:
send('%s has already joined' % nick)
nick, = args
if nick not in players:
add_player(nick)
voice(nick)
players[nick].message = None
send('%s has joined' % nick)
elif event == events.leave:
nick, = args
@ -934,7 +947,16 @@ def game(send, notice, voice, devoice, get_event):
winners = [i for i in players_bots() if i.points == max_score]
send('We have a winner! %s' % ', '.join(i.nick for i in winners))
if len(winners) == 1:
winner, = winners
if winner.message is not None:
send('We have a winner! %s won %s' % (winner.nick, winner.message))
else:
send('We have a winner! %s' % winner.nick)
else:
send('We have the winners! %s' % ', '.join(i.nick for i in winners))
return no_game
@ -989,6 +1011,10 @@ if __name__ == '__main__':
elif t == 'join':
nick = input('nick> ')
return (events.join, nick)
elif t == 'join_message':
nick = input('nick> ')
message = input('message> ')
return (events.join, nick, message)
elif t == 'leave':
nick = input('nick> ')
return (events.leave, nick)