diff options
-rw-r--r-- | forcefield.py | 6 | ||||
-rw-r--r-- | friends.py | 14 | ||||
-rw-r--r-- | helpers.py | 2 | ||||
-rw-r--r-- | misc.py | 2 | ||||
-rw-r--r-- | reports.py | 17 | ||||
-rw-r--r-- | saylol.py | 5 |
6 files changed, 27 insertions, 19 deletions
diff --git a/forcefield.py b/forcefield.py index bafe4a9..94f7747 100644 --- a/forcefield.py +++ b/forcefield.py @@ -55,8 +55,8 @@ def change_whitelist(sender, add, names): #Add names if add == True else Remove whitelists[sender_id] = [] for name in names: - player = server.getOfflinePlayer(name) - if player.hasPlayedBefore(): + player = server.getPlayer(name) + if player: player_id = uid(player) pname = player.getName() sname = stripcolors(sender.getDisplayName()) @@ -82,7 +82,7 @@ def change_whitelist(sender, add, names): #Add names if add == True else Remove forcefield_header(sender, "&f%s &cwas %s in your forcefield whitelist!" % (pname, var)) else: - forcefield_header(sender, "&cplayer &f%s &cwas not found." % name) + forcefield_header(sender, "&cplayer &f%s &cwas not found (must be online)." % name) else: forcefield_header(sender, "&cGive space-separated playernames.") @@ -58,10 +58,8 @@ def add(sender, names): friends[sender_id] = [] for name in names: - player = server.getOfflinePlayer(name) - # FIXME: breaks if player not known - # FIXME: might to a blocking call, maybe we can use getOfflinePlayers() - if known_player(player): + player = server.getPlayer(name) + if player: player_id = uid(player) not_yourself = player != sender @@ -80,7 +78,7 @@ def add(sender, names): if added: friendmessage(sender, "&a&o%s&a added." % ", ".join(added)) if notfound: - friendmessage(sender, "&c&o%s&c not found." % ", ".join(notfound)) + friendmessage(sender, "&c&o%s&c not found. (must be online)" % ", ".join(notfound)) if friendalready: friendmessage(sender, "&c&o%s&c is/are already your friend." % ", ".join(friendalready)) if not not_yourself: @@ -94,8 +92,8 @@ def rem(sender, names): notafriend = [] for name in names: - player = server.getOfflinePlayer(name) - if known_player(player): + player = server.Player(name) + if player: player_id = uid(player) if player_id in friends.get(sender_id, []): friends[sender_id].remove(player_id) @@ -110,7 +108,7 @@ def rem(sender, names): if removed: friendmessage(sender, "&a&o%s&a removed." % ", ".join(removed)) if notfound: - friendmessage(sender, "&c&o%s&c not found." % ", ".join(notfound)) + friendmessage(sender, "&c&o%s&c not found. (must be online)" % ", ".join(notfound)) if notafriend: friendmessage(sender, "&c&o%s&c is/are not in your friends list." % ", ".join(notafriend)) @@ -160,7 +160,7 @@ def retrieve_player(uuid_str): def known_player(player): """ - to be used on OfflinePlayer + to be used on OfflinePlayer (which can be online!) returns True if the player has been on the server this is different to HasPlayedBefore(), which will return False on first join """ @@ -14,7 +14,7 @@ def on_join(event): player = event.getPlayer() # send welcome broadcast - if not server.getOfflinePlayer(player.getName()).hasPlayedBefore(): + if not player.hasPlayedBefore(): broadcast("utils.greet_new", "") broadcast("utils.greet_new", "&a&lPlease welcome &f" + player.getDisplayName() + " &a<o Redstoner!") broadcast("utils.greet_new", "") @@ -1,5 +1,5 @@ from helpers import * -from java.util.UUID import fromString as id_to_player +from java.util.UUID import fromString as juuid import time import thread @@ -19,9 +19,13 @@ def print_help(sender): def print_list(sender): - msg(sender, "&a" + str(len(reports)) + " reports:") - for i, report in enumerate(reports): - msg(sender, "&8[&e" + str(i) + " &c" + report["time"] + "&8] &3" + server.getOfflinePlayer(id_to_player(report["uuid"])).getName() + "&f: &a" + report["msg"]) + try: # new thread, anything can happen. + msg(sender, "&a" + str(len(reports)) + " reports:") + for i, report in enumerate(reports): + name = server.getOfflinePlayer(juuid(report["uuid"])).getName() + msg(sender, "&8[&e%s&c%s&8] &3%s&f: &a%s" % (i, report["time"], name, report["msg"])) + except: + warn("Failed to complete report's print_list() thread") def tp_report(sender, rep_id): @@ -40,7 +44,7 @@ def delete_report(sender, rep_id): reports.pop(rep_id) save_reports() msg(sender, "&aReport #%s deleted." % rep_id) - reporter = server.getOfflinePlayer(id_to_player(report["uuid"])) + reporter = server.getOfflinePlayer(juuid(report["uuid"])) plugin_header(reporter, "Report") msg(reporter, "&aReport '&e%s&a' was resolved by %s." % (report["msg"], sender.getName())) else: @@ -57,7 +61,8 @@ def on_rp_command(sender, args): plugin_header(sender, "Reports") if len(args) > 0: if args[0] == "list": - print_list(sender) + # needs to run in seperate thread because of getOfflinePlayer + thread.start_new_thread(print_list, (sender)) else: if not checkargs(sender, args, 2, 2): return True @@ -38,9 +38,14 @@ def print_lol(sender, lid): def search_lols(sender, keyword): + if not keyword: + msg(sender, "&cPlease provide a keyword to search for!") + return + msg(sender, "&aLols containing '&6%s&a':" % keyword) for i, lol in enumerate(lols): if keyword in lol: msg(sender, "&a%s: &e%s" % (str(i).rjust(3), lol)) + msg(sender, "") # empty line showing end of list @hook.command("lol") |