summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--forcefield.py6
-rw-r--r--friends.py14
-rw-r--r--helpers.py2
-rw-r--r--misc.py2
-rw-r--r--reports.py17
-rw-r--r--saylol.py5
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.")
diff --git a/friends.py b/friends.py
index ce9b111..6522406 100644
--- a/friends.py
+++ b/friends.py
@@ -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))
diff --git a/helpers.py b/helpers.py
index 9d80d73..c1e7a23 100644
--- a/helpers.py
+++ b/helpers.py
@@ -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
"""
diff --git a/misc.py b/misc.py
index e743d00..d91a82c 100644
--- a/misc.py
+++ b/misc.py
@@ -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&lto Redstoner!")
broadcast("utils.greet_new", "")
diff --git a/reports.py b/reports.py
index 0b3cfcc..77e522d 100644
--- a/reports.py
+++ b/reports.py
@@ -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
diff --git a/saylol.py b/saylol.py
index 6da18c9..8f5d461 100644
--- a/saylol.py
+++ b/saylol.py
@@ -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")