From adaddd7500bf7ea695e004501e3121471146b67c Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 02:49:34 +0200 Subject: [PATCH 1/8] use threading for offline players --- forcefield.py | 24 ++++++++++++++---------- reports.py | 4 ++-- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/forcefield.py b/forcefield.py index 94f7747..497c853 100644 --- a/forcefield.py +++ b/forcefield.py @@ -1,4 +1,5 @@ #pylint: disable = F0401 +import thread from helpers import * from org.bukkit.util import Vector from math import sin @@ -28,7 +29,7 @@ def on_forcefield_command(sender, args): args[0] = args[0].upper() # If it gets to this point, there are argument(s). if args[0] in ["WHITELIST", "WL", "WLIST"]: # Whitelist commands if not args[1:] or args[1].upper() == "LIST": - whitelist_list(sender) + thread.start_new_thread(whitelist_list, (sender,)) return True args[1] = args[1].upper() # If it gets too this point, there is a second argument. @@ -88,15 +89,18 @@ def change_whitelist(sender, add, names): #Add names if add == True else Remove def whitelist_list(player): - player_id = uid(player) - count = 0 - forcefield_header(player, "&bForcefield whitelist:") - for user_id in whitelists.get(player_id, []): - count += 1 - pname = retrieve_player(user_id).getName() - msg(player, "&b %s. &f%s" % (count, pname)) - if count == 0: - msg(player, "&c Your whitelist has no entries.") + try: + player_id = uid(player) + count = 0 + forcefield_header(player, "&bForcefield whitelist:") + for user_id in whitelists.get(player_id, []): + count += 1 + pname = retrieve_player(user_id).getName() + msg(player, "&b %s. &f%s" % (count, pname)) + if count == 0: + msg(player, "&c Your whitelist has no entries.") + except: + warn("Unable to finish whitelist_list process") def whitelist_clear(player): diff --git a/reports.py b/reports.py index 77e522d..3663772 100644 --- a/reports.py +++ b/reports.py @@ -22,7 +22,7 @@ def print_list(sender): 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() + name = retrieve_player(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") @@ -62,7 +62,7 @@ def on_rp_command(sender, args): if len(args) > 0: if args[0] == "list": # needs to run in seperate thread because of getOfflinePlayer - thread.start_new_thread(print_list, (sender)) + thread.start_new_thread(print_list, (sender,)) else: if not checkargs(sender, args, 2, 2): return True From 1238ca66f3f67ee6969c663c80c64cdbc156b0f5 Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 02:53:24 +0200 Subject: [PATCH 2/8] more threading / offlineplayer fixes --- friends.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/friends.py b/friends.py index 6522406..686fed8 100644 --- a/friends.py +++ b/friends.py @@ -25,22 +25,23 @@ def friendmessage(player, message): # sends a message with a prefix 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") + try: + 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") + except: + warn("Unable to finish friends' ls process") 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() @@ -133,7 +134,7 @@ def on_friend_command(sender, args): # /friends list if cmd in ["list", "lst", "*"]: - ls(sender) + thread.start_new_thread(ls, (sender,)) # /friends clear elif cmd in ["clear", "/"]: From 0b98ba42d333effc20f3e0e9e4c95f041d5f5426 Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 03:03:27 +0200 Subject: [PATCH 3/8] forgot space --- reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reports.py b/reports.py index 3663772..361340d 100644 --- a/reports.py +++ b/reports.py @@ -23,7 +23,7 @@ def print_list(sender): msg(sender, "&a" + str(len(reports)) + " reports:") for i, report in enumerate(reports): name = retrieve_player(report["uuid"]).getName() - msg(sender, "&8[&e%s&c%s&8] &3%s&f: &a%s" % (i, report["time"], name, report["msg"])) + 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") From 34e703bb3edc24f1a9dfa41527d0002e23e74b43 Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 03:31:47 +0200 Subject: [PATCH 4/8] forgot to import thread --- friends.py | 1 + 1 file changed, 1 insertion(+) diff --git a/friends.py b/friends.py index 686fed8..d8a70ea 100644 --- a/friends.py +++ b/friends.py @@ -1,3 +1,4 @@ +import thread from helpers import * friends = open_json_file("friends", {}) # {Player_UUID:[List_of_friend_uuids]} From 5ecd804d6302e5b45d46a57a78df5db884875a24 Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 03:32:18 +0200 Subject: [PATCH 5/8] remove friends plugin. Too buggy! --- main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.py b/main.py index 701c1d5..6255c4d 100644 --- a/main.py +++ b/main.py @@ -43,8 +43,7 @@ shared["load_modules"] = [ "cycle", "motd", "abot", - "forcefield", - "friends" + "forcefield" ] shared["modules"] = {} for module in shared["load_modules"]: From 6c164a054a9e0e5a4755b54dd1a691a9fcfb0e21 Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 04:21:16 +0200 Subject: [PATCH 6/8] case insensitive /lol search --- saylol.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/saylol.py b/saylol.py index 8f5d461..209c796 100644 --- a/saylol.py +++ b/saylol.py @@ -41,9 +41,10 @@ def search_lols(sender, keyword): if not keyword: msg(sender, "&cPlease provide a keyword to search for!") return + keyword = keyword.lower() msg(sender, "&aLols containing '&6%s&a':" % keyword) for i, lol in enumerate(lols): - if keyword in lol: + if keyword in lol.lower(): msg(sender, "&a%s: &e%s" % (str(i).rjust(3), lol)) msg(sender, "") # empty line showing end of list From f9e09d0f86e287c7858dabc87bddcacb04bc15c6 Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 22:41:02 +0200 Subject: [PATCH 7/8] small bugfixes --- mentio.py | 12 +++++++++--- saylol.py | 2 -- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mentio.py b/mentio.py index 89c5f10..496bf2f 100644 --- a/mentio.py +++ b/mentio.py @@ -112,6 +112,12 @@ def del_keyword(sender, args): msg(sender, "&cWe can't remove something that doesn't exist! Try &6/mentio list") +def show_help(player): + msg(player, "&a/mentio add ") + msg(player, "&a/mentio del ") + msg(player, "&a/mentio list") + + @hook.command("mentio") def onListenCommand(sender, args): plugin_header(sender, "Mentio") @@ -136,8 +142,8 @@ def onListenCommand(sender, args): msg(sender, "&c- &3%s" % word) if not keywords: msg(sender, "&cYou are currently listening for no words! Try &6/mentio add ") + else: + show_help(sender) else: - msg(sender, "&a/mentio add ") - msg(sender, "&a/mentio del ") - msg(sender, "&a/mentio list") + show_help(sender) return True \ No newline at end of file diff --git a/saylol.py b/saylol.py index 209c796..58b8ae9 100644 --- a/saylol.py +++ b/saylol.py @@ -30,10 +30,8 @@ def print_lol(sender, lid): broadcast(None, "&8[&blol&8] &7%s&8: &e%s" % (dispname, lols[lid])) last_msg = time() else: - plugin_header(sender, "SayLol") msg(sender, "&cInvalid id") else: - plugin_header(sender, "SayLol") msg(sender, "&cYou can use SayLol again in &a%s seconds!" % int(timeout + 1 - (time() - last_msg))) From ff7e3e4e679ff2ec9a1f7b794f489270e23a54ad Mon Sep 17 00:00:00 2001 From: jomo Date: Thu, 7 Aug 2014 22:46:02 +0200 Subject: [PATCH 8/8] enable damnspam --- main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 6255c4d..2b2d762 100644 --- a/main.py +++ b/main.py @@ -43,7 +43,8 @@ shared["load_modules"] = [ "cycle", "motd", "abot", - "forcefield" + "forcefield", + "damnspam" ] shared["modules"] = {} for module in shared["load_modules"]: