Merge branch 'dev'
This commit is contained in:
27
friends.py
27
friends.py
@@ -29,6 +29,13 @@ def friendmessage(player, message): # sends a message with a prefix
|
|||||||
msg(player, "&7[&aFriends&7] " + message)
|
msg(player, "&7[&aFriends&7] " + message)
|
||||||
|
|
||||||
|
|
||||||
|
def get_player(name):
|
||||||
|
result = server.getOfflinePlayer(name)
|
||||||
|
if result is not None and (result.hasPlayedBefore() or result.isOnline()):
|
||||||
|
return result
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def ls(sender):
|
def ls(sender):
|
||||||
try:
|
try:
|
||||||
sender_friends = friends.get(uid(sender), False)
|
sender_friends = friends.get(uid(sender), False)
|
||||||
@@ -59,21 +66,25 @@ def add(sender, names):
|
|||||||
added = []
|
added = []
|
||||||
notfound = []
|
notfound = []
|
||||||
friendalready = []
|
friendalready = []
|
||||||
|
added_self = False
|
||||||
|
|
||||||
if not sender_id in friends:
|
if not sender_id in friends:
|
||||||
friends[sender_id] = []
|
friends[sender_id] = []
|
||||||
|
|
||||||
for name in names:
|
for name in names:
|
||||||
player = server.getPlayer(name)
|
player = get_player(name)
|
||||||
if player:
|
if player:
|
||||||
player_id = uid(player)
|
player_id = uid(player)
|
||||||
not_yourself = player != sender
|
not_yourself = sender != player
|
||||||
|
|
||||||
if not player_id in friends[sender_id]:
|
if not player_id in friends[sender_id]:
|
||||||
if not_yourself:
|
if not_yourself:
|
||||||
friends[sender_id].append(player_id)
|
friends[sender_id].append(player_id)
|
||||||
added.append(player.getName())
|
added.append(player.getName())
|
||||||
|
if player.isOnline():
|
||||||
friendmessage(player.getPlayer(), "&a&o%s &aadded you to their friends list" % stripcolors(sender.getDisplayName()))
|
friendmessage(player.getPlayer(), "&a&o%s &aadded you to their friends list" % stripcolors(sender.getDisplayName()))
|
||||||
|
else:
|
||||||
|
added_self = True
|
||||||
else:
|
else:
|
||||||
friendalready.append(player.getName())
|
friendalready.append(player.getName())
|
||||||
|
|
||||||
@@ -84,10 +95,10 @@ def add(sender, names):
|
|||||||
if added:
|
if added:
|
||||||
friendmessage(sender, "&a&o%s&a added." % ", ".join(added))
|
friendmessage(sender, "&a&o%s&a added." % ", ".join(added))
|
||||||
if notfound:
|
if notfound:
|
||||||
friendmessage(sender, "&c&o%s&c not found. (must be online)" % ", ".join(notfound))
|
friendmessage(sender, "&c&o%s&c not found." % ", ".join(notfound))
|
||||||
if friendalready:
|
if friendalready:
|
||||||
friendmessage(sender, "&c&o%s&c is/are already your friend." % ", ".join(friendalready))
|
friendmessage(sender, "&c&o%s&c is/are already your friend." % ", ".join(friendalready))
|
||||||
if not not_yourself:
|
if added_self:
|
||||||
friendmessage(sender, "&cYou can't add yourself to your friends list.")
|
friendmessage(sender, "&cYou can't add yourself to your friends list.")
|
||||||
|
|
||||||
|
|
||||||
@@ -98,18 +109,21 @@ def rem(sender, names):
|
|||||||
notafriend = []
|
notafriend = []
|
||||||
|
|
||||||
for name in names:
|
for name in names:
|
||||||
player = server.getPlayer(name)
|
player = get_player(name)
|
||||||
if player:
|
if player:
|
||||||
player_id = uid(player)
|
player_id = uid(player)
|
||||||
if player_id in friends.get(sender_id, []):
|
if player_id in friends.get(sender_id, []):
|
||||||
friends[sender_id].remove(player_id)
|
friends[sender_id].remove(player_id)
|
||||||
removed.append(player.getName())
|
removed.append(player.getName())
|
||||||
|
if player.isOnline():
|
||||||
friendmessage(player.getPlayer(), "&c&o%s &cremoved you from their friends list" % stripcolors(sender.getDisplayName()))
|
friendmessage(player.getPlayer(), "&c&o%s &cremoved you from their friends list" % stripcolors(sender.getDisplayName()))
|
||||||
else:
|
else:
|
||||||
notafriend.append(player.getName())
|
notafriend.append(player.getName())
|
||||||
else:
|
else:
|
||||||
notfound.append(name)
|
notfound.append(name)
|
||||||
|
|
||||||
|
if not friends.get(sender_id, False):
|
||||||
|
del friends[sender_id]
|
||||||
save_friends()
|
save_friends()
|
||||||
if removed:
|
if removed:
|
||||||
friendmessage(sender, "&a&o%s&a removed." % ", ".join(removed))
|
friendmessage(sender, "&a&o%s&a removed." % ", ".join(removed))
|
||||||
@@ -130,6 +144,7 @@ def fhelp(sender):
|
|||||||
|
|
||||||
@hook.command("friends")
|
@hook.command("friends")
|
||||||
def on_friend_command(sender, command, label, args):
|
def on_friend_command(sender, command, label, args):
|
||||||
|
try:
|
||||||
if not is_player(sender):
|
if not is_player(sender):
|
||||||
friendmessage(sender, "&c&lYou can't have friends!")
|
friendmessage(sender, "&c&lYou can't have friends!")
|
||||||
return True
|
return True
|
||||||
@@ -162,3 +177,5 @@ def on_friend_command(sender, command, label, args):
|
|||||||
else:
|
else:
|
||||||
fhelp(sender)
|
fhelp(sender)
|
||||||
return True
|
return True
|
||||||
|
except:
|
||||||
|
error(trace())
|
||||||
|
|||||||
Reference in New Issue
Block a user