diff options
author | jomo <github@jomo.tv> | 2014-07-24 02:12:54 +0200 |
---|---|---|
committer | jomo <github@jomo.tv> | 2014-07-24 02:12:54 +0200 |
commit | bdabfc00542553073af7ebcfcfc1e500a633f516 (patch) | |
tree | 5962802ae0fab761c142f3563d140ca35bd86aa0 /friends.py | |
parent | 60b523f0d1aff04426a9bcbfe5ed8220677a504d (diff) |
clean up friends.py
Diffstat (limited to 'friends.py')
-rw-r--r-- | friends.py | 211 |
1 files changed, 123 insertions, 88 deletions
@@ -10,7 +10,7 @@ friend_join_sound = "random.orb" def fjm(event): # friend join message player = event.getPlayer() player_id = uid(player) - playerlist = "" + for onlineplayer in list(server.getOnlinePlayers()): if player_id in friends.get(uid(onlineplayer), []): msg(onlineplayer, "&a&l%s &ajoined!" % player.getName()) @@ -25,100 +25,135 @@ def friendmessage(player, message): # sends a message with a prefix msg(player, "&7[&aFriends&7] " + message) +def ls(sender): + sender_friends = friends.get(uid(sender), False) + if sender_friends: + friends_string = "" + for uuid in sender_friends: + friends_string += (retrieve_player(uuid).getName() + ", ") + friendmessage(sender, "&aYour friends list: " + friends_string[:len(friends_string)-2]) + else: + friendmessage(sender, "&cYour friends list is empty") + + +def clear(sender): + sender_id = uid(sender) + + if friends.get(sender_id, False): + for uuid in friends[sender_id]: + friendmessage(retrieve_player(uuid), "&c&o%s &cremoved you from their friends list" % stripcolors(sender.getDisplayName())) + friends.pop(sender_id) + friendmessage(sender, "&aFriends list cleared") + save_friends() + else: + friendmessage(sender, "&cYour friends list is already empty") + + +def add(sender, names): + sender_id = uid(sender) + added = [] + notfound = [] + friendalready = [] + + if not sender_id in friends: + friends[sender_id] = [] + + for name in names: + player = server.getOfflinePlayer(name) + if played_before(player): + player_id = uid(player) + not_yourself = player != sender + + if not player_id in friends[sender_id]: + if not_yourself: + friends[sender_id].append(player_id) + added.append(player.getName()) + friendmessage(player.getPlayer(), "&a&o%s &aadded you to their friends list" % stripcolors(sender.getDisplayName())) + else: + friendalready.append(player.getName()) + + else: + notfound.append(name) + + save_friends() + if added: + friendmessage(sender, "&a&o%s&a added." % ", ".join(added)) + if notfound: + friendmessage(sender, "&c&o%s&c not found." % ", ".join(notfound)) + if friendalready: + friendmessage(sender, "&c&o%s&c is/are already your friend." % ", ".join(friendalready)) + if not not_yourself: + friendmessage(sender, "&cYou can't add yourself to your friends list.") + + +def rem(sender, names): + sender_id = uid(sender) + removed = [] + notfound = [] + notafriend = [] + + for name in names: + player = server.getOfflinePlayer(name) + if played_before(player): + player_id = uid(player) + if player_id in friends.get(sender_id, []): + friends[sender_id].remove(player_id) + removed.append(player.getName()) + friendmessage(player.getPlayer(), "&c&o%s &cremoved you from their friends list" % stripcolors(sender.getDisplayName())) + else: + notafriend.append(player.getName()) + else: + notfound.append(name) + + save_friends() + if removed: + friendmessage(sender, "&a&o%s&a removed." % ", ".join(removed)) + if notfound: + friendmessage(sender, "&c&o%s&c not found." % ", ".join(notfound)) + if notafriend: + friendmessage(sender, "&c&o%s&c is/are not in your friends list." % ", ".join(notafriend)) + + +def fhelp(sender): + friendmessage(sender, "&a&l/friends help") + msg(sender, "&a1. /friends &oadd <names...> &6aliases: &o+") + msg(sender, "&a2. /friends &orem <names...> &6aliases: &oremove, delete, del, -") + msg(sender, "&a3. /friends &oclear &6aliases: &o/") + msg(sender, "&a4. /friends &olist &6aliases: &olst, *") + msg(sender, "&a5. /friends &ohelp &6aliases: &o?") + + @hook.command("friends") def on_friend_command(sender, args): if not is_player(sender): friendmessage(sender, "&c&lYou can't have friends!") return True - sender_id = uid(sender) - if not args or args[0] in ["list", "lst", "*"]: #/friends list - sender_friends = friends.get(sender_id, False) - if sender_friends: - friends_string = "" - for uuid in sender_friends: - friends_string += (retrieve_player(uuid).getName() + ", ") - friendmessage(sender, "&aYour friends list: " + friends_string[:len(friends_string)-2]) - else: - friendmessage(sender, "&cYour friends list is empty") - - elif args[0] in ["clear", "/"]: #/friends clear - if friends.get(sender_id, False): - for uuid in friends[sender_id]: - friendmessage(retrieve_player(uuid), "&c&o%s &cremoved you from their friends list" % stripcolors(sender.getDisplayName())) - friends.pop(sender_id) - friendmessage(sender, "&aFriends list cleared") - save_friends() - else: - friendmessage(sender, "&cYour friends list is already empty") - - elif args[0] in ["add", "+"]: #/friends add <names> - if args[1:]: - if not sender_id in friends: - friends[sender_id] = [] - added = "" - notfound = "" - friendalready = "" - for name in args[1:]: - player = server.getOfflinePlayer(name) - if played_before(player): - player_id = uid(player) - not_yourself = player != sender - if not player_id in friends[sender_id]: - if not_yourself: - friends[sender_id].append(player_id) - added += (player.getName() + ", ") - friendmessage(player.getPlayer(), "&a&o%s &aadded you to their friends list" % stripcolors(sender.getDisplayName())) - else: - friendalready += (player.getName() + ", ") - else: - notfound += (name + ", ") - save_friends() - if added != "": - friendmessage(sender, "&a&o%s&a added." % added[:len(added)-2]) - if notfound != "": - friendmessage(sender, "&c&o%s&c not found." % notfound[:len(notfound)-2]) - if friendalready != "": - friendmessage(sender, "&c&o%s&c is/are already your friend." % friendalready[:len(friendalready)-2]) - if not not_yourself: - friendmessage(sender, "&cYou can't add yourself to your friends list.") - else: - friendmessage(sender, "&cUsage: &o/friends + <names...>") - - elif args[0] in ["remove", "rem", "delete", "del", "-"]: #/friends remove <names> - if args[1:]: - removed = "" - notfound = "" - notafriend = "" - for name in args[1:]: - player = server.getOfflinePlayer(name) - if played_before(player): - player_id = uid(player) - if player_id in friends.get(sender_id, []): - friends[sender_id].remove(player_id) - removed += (player.getName() + ", ") - friendmessage(player.getPlayer(), "&c&o%s &cremoved you from their friends list" % stripcolors(sender.getDisplayName())) - else: - notafriend += (player.getName() + ", ") - else: - notfound += (name + ", ") - save_friends() - if removed != "": - friendmessage(sender, "&a&o%s&a removed." % removed[:len(removed)-2]) - if notfound != "": - friendmessage(sender, "&c&o%s&c not found." % notfound[:len(notfound)-2]) - if notafriend != "": - friendmessage(sender, "&c&o%s&c is/are not in your friends list." % notafriend[:len(notafriend)-2]) + + cmd = args[0] if args else None + fargs = args[1:] + + # /friends list + if cmd in ["list", "lst", "*"]: + ls(sender) + + # /friends clear + elif cmd in ["clear", "/"]: + clear(sender) + + # /friends add <names> + elif cmd in ["add", "+"]: + if fargs: + add(sender, fargs) else: - friendmessage(sender, "&cUsage: &o/friends - <names...>") + fhelp(sender) - elif args[0] in ["help", "?"]: #/friends help - friendmessage(sender, "&a&l/friends help") - msg(sender, "&a1. /friends &oadd <names...> &6aliases: &o+") - msg(sender, "&a2. /friends &orem <names...> &6aliases: &oremove, delete, del, -") - msg(sender, "&a3. /friends &oclear &6aliases: &o/") - msg(sender, "&a4. /friends &olist &6aliases: &olst, *") - msg(sender, "&a5. /friends &ohelp &6aliases: &o?") + # /friends remove <names> + elif cmd in ["remove", "rem", "delete", "del", "-"]: + if fargs: + rem(sender, fargs) + else: + fhelp(sender) else: - friendmessage(sender, "&cInvalid syntax. use &o/friends ? &cfor info.") + fhelp(sender) return True
\ No newline at end of file |