Changed all CommandExecutor arguments
Added arguments command and label to all command executor functions,
hopefully for massive performance increase.
This is due to the following mess in PythonLoader:
``` Java
@Override
public boolean onCommand(CommandSender sender, Command command, String
label, String[] args) {
boolean result;
if (argcount == -1) {
try {
result = call(4, sender, command, label, args);
argcount = 4;
} catch (PyException e) {
//this could goof up someone ... they'll probably yell at us and
eventually read this code ... fuck them
if (e.type == Py.TypeError && (e.value.toString().endsWith("takes
exactly 3 arguments (4 given)") || e.value.toString().endsWith("takes
exactly 4 arguments (5 given)"))) {
result = call(3, sender, command, label, args);
argcount = 3;
} else if (e.type == Py.TypeError && (e.value.toString().endsWith("takes
exactly 2 arguments (4 given)") || e.value.toString().endsWith("takes
exactly 3 arguments (5 given)"))) {
result = call(2, sender, command, label, args);
argcount = 2;
} else {
throw e;
}
}
} else {
result = call(argcount, sender, command, label, args);
}
return result;
}
```
Note: Still WIP on reports - I'm working on making it keep solved
reports to fix issue 10
This commit is contained in:
2
abot.py
2
abot.py
@@ -27,7 +27,7 @@ def list_answers(sender):
|
||||
|
||||
|
||||
@hook.command("abot")
|
||||
def on_abot_command(sender, args):
|
||||
def on_abot_command(sender, command, label, args):
|
||||
plugin_header(sender, "AnswerBot")
|
||||
if sender.hasPermission("utils.abot.admin"):
|
||||
if not args:
|
||||
|
||||
@@ -68,7 +68,7 @@ def show_an_help(sender):
|
||||
|
||||
|
||||
@hook.command("an", aliases=["adminnotes", "adminnote"])
|
||||
def adminnotes_command(sender, args):
|
||||
def adminnotes_command(sender, command, label, args):
|
||||
if not sender.hasPermission(an_permission):
|
||||
noperm(sender)
|
||||
return
|
||||
|
||||
@@ -86,7 +86,7 @@ def del_badge(sender, target, badge):
|
||||
|
||||
|
||||
@hook.command("badge", aliases=["badges", "rewards"])
|
||||
def on_badge_command(sender, args):
|
||||
def on_badge_command(sender, command, label, args):
|
||||
argnum = int(len(args))
|
||||
|
||||
# No arguments
|
||||
|
||||
2
calc.py
2
calc.py
@@ -45,7 +45,7 @@ def on_calc_chat(event):
|
||||
|
||||
|
||||
@hook.command("calc", description="Toggles chat calculations")
|
||||
def on_calc_command(sender, args):
|
||||
def on_calc_command(sender, command, label, args):
|
||||
plugin_header(sender, "Chat Calculator")
|
||||
if not sender.hasPermission(calc_perm):
|
||||
noperm(sender)
|
||||
|
||||
@@ -9,7 +9,7 @@ cg_toggle_list = []
|
||||
|
||||
|
||||
@hook.command("chatgroup")
|
||||
def on_chatgroup_command(sender, args):
|
||||
def on_chatgroup_command(sender, command, label, args):
|
||||
plugin_header(sender, "ChatGroups")
|
||||
sender_id = uid(sender)
|
||||
if len(args) == 1 and args[0] == "leave":
|
||||
@@ -47,7 +47,7 @@ def on_chatgroup_command(sender, args):
|
||||
|
||||
|
||||
@hook.command("cgt")
|
||||
def on_cgt_command(sender, args):
|
||||
def on_cgt_command(sender, command, label, args):
|
||||
p = uid(sender)
|
||||
if p in cg_toggle_list:
|
||||
cg_toggle_list.remove(p)
|
||||
|
||||
2
check.py
2
check.py
@@ -79,7 +79,7 @@ def get_all_data(sender, player):
|
||||
|
||||
|
||||
@hook.command("check", description="Displays useful stuff about a user", usage="/check <player>")
|
||||
def on_hook_command(sender, args):
|
||||
def on_hook_command(sender, command, label, args):
|
||||
if sender.hasPermission("utils.check"):
|
||||
if not checkargs(sender, args, 1, 1):
|
||||
return True
|
||||
|
||||
2
cycle.py
2
cycle.py
@@ -4,7 +4,7 @@ no_cyclers = open_json_file("cycle", [])
|
||||
|
||||
|
||||
@hook.command("cycle")
|
||||
def on_cycler_command(sender, args):
|
||||
def on_cycler_command(sender, command, label, args):
|
||||
plugin_header(sender, "Cycle")
|
||||
if not is_player(sender):
|
||||
msg(sender, "&conly players can do this")
|
||||
|
||||
@@ -27,7 +27,7 @@ def add_input(creator, block, timeout_off, timeout_on):
|
||||
|
||||
|
||||
@hook.command("damnspam")
|
||||
def on_dammnspam_command(sender, args):
|
||||
def on_dammnspam_command(sender, command, label, args):
|
||||
global changing_input
|
||||
|
||||
plugin_header(sender, "DamnSpam")
|
||||
|
||||
@@ -17,7 +17,7 @@ whitelists = {} # {ff_owner_id: [white, listed, ids]} (Adding file usage later,
|
||||
|
||||
|
||||
@hook.command("forcefield")
|
||||
def on_forcefield_command(sender, args):
|
||||
def on_forcefield_command(sender, command, label, args):
|
||||
if not is_player(sender) or not sender.hasPermission(ff_perm):
|
||||
noperm(sender)
|
||||
return True
|
||||
|
||||
@@ -125,7 +125,7 @@ def fhelp(sender):
|
||||
|
||||
|
||||
@hook.command("friends")
|
||||
def on_friend_command(sender, args):
|
||||
def on_friend_command(sender, command, label, args):
|
||||
if not is_player(sender):
|
||||
friendmessage(sender, "&c&lYou can't have friends!")
|
||||
return True
|
||||
|
||||
2
imout.py
2
imout.py
@@ -5,7 +5,7 @@ from adminchat import *
|
||||
imout_toggle_list = []
|
||||
|
||||
@hook.command("imout")
|
||||
def on_imout_command(sender, args):
|
||||
def on_imout_command(sender, command, label, args):
|
||||
if sender.hasPermission("utils.imout"):
|
||||
name = sender.getName()
|
||||
symbol = "&a&l+"
|
||||
|
||||
@@ -37,7 +37,7 @@ def tp_chunk(sender, id):
|
||||
|
||||
|
||||
@hook.command("lagchunks")
|
||||
def on_lagchunks_command(sender, args):
|
||||
def on_lagchunks_command(sender, command, label, args):
|
||||
if sender.hasPermission("utils.lagchunks"):
|
||||
plugin_header(sender, "Lagchunks")
|
||||
global lagchunks
|
||||
|
||||
@@ -119,7 +119,7 @@ def show_help(player):
|
||||
|
||||
|
||||
@hook.command("mentio")
|
||||
def onListenCommand(sender, args):
|
||||
def onListenCommand(sender, command, label, args):
|
||||
plugin_header(sender, "Mentio")
|
||||
|
||||
argnum = len(args)
|
||||
|
||||
12
misc.py
12
misc.py
@@ -39,7 +39,7 @@ def on_join(event):
|
||||
|
||||
|
||||
@hook.command("sudo")
|
||||
def on_sudo_command(sender, args):
|
||||
def on_sudo_command(sender, command, label, args):
|
||||
"""
|
||||
/sudo
|
||||
execute command/chat *as* a player/console
|
||||
@@ -68,7 +68,7 @@ def on_sudo_command(sender, args):
|
||||
|
||||
#Temporary solution for /me
|
||||
@hook.command("me")
|
||||
def on_me_command(sender, args):
|
||||
def on_me_command(sender, command, label, args):
|
||||
if not sender.hasPermission("essentials.me"):
|
||||
noperm(sender)
|
||||
return True
|
||||
@@ -133,7 +133,7 @@ def on_player_entity_interact(event):
|
||||
|
||||
|
||||
@hook.command("pluginversions")
|
||||
def on_pluginversions_command(sender, args):
|
||||
def on_pluginversions_command(sender, command, label, args):
|
||||
"""
|
||||
/pluginversions
|
||||
print all plugins + versions; useful when updating plugins
|
||||
@@ -148,7 +148,7 @@ def on_pluginversions_command(sender, args):
|
||||
|
||||
|
||||
@hook.command("echo")
|
||||
def on_echo_command(sender, args):
|
||||
def on_echo_command(sender, command, label, args):
|
||||
"""
|
||||
/echo
|
||||
essentials echo sucks and prints mail alerts sometimes
|
||||
@@ -175,7 +175,7 @@ def eval_thread(sender, code):
|
||||
|
||||
|
||||
@hook.command("pyeval")
|
||||
def on_pyeval_command(sender, args):
|
||||
def on_pyeval_command(sender, command, label, args):
|
||||
"""
|
||||
/pyeval
|
||||
run python code ingame
|
||||
@@ -191,7 +191,7 @@ def on_pyeval_command(sender, args):
|
||||
|
||||
|
||||
@hook.command("modules")
|
||||
def on_modules_command(sender, args):
|
||||
def on_modules_command(sender, command, label, args):
|
||||
"""
|
||||
/modules
|
||||
list all modules, unloaded modules in red
|
||||
|
||||
4
motd.py
4
motd.py
@@ -5,13 +5,13 @@ default_motd = colorify(server.getMotd())
|
||||
motd = default_motd
|
||||
|
||||
@hook.command("getmotd")
|
||||
def on_getmotd_command(sender, args):
|
||||
def on_getmotd_command(sender, command, label, args):
|
||||
plugin_header(sender, "MOTD")
|
||||
msg(sender, motd, usecolor = False)
|
||||
|
||||
|
||||
@hook.command("setmotd")
|
||||
def on_setmotd_command(sender, args):
|
||||
def on_setmotd_command(sender, command, label, args):
|
||||
global motd
|
||||
if sender.hasPermission("utils.setmotd"):
|
||||
if not checkargs(sender, args, 1, -1):
|
||||
|
||||
@@ -6,7 +6,7 @@ toggle_dict = {}
|
||||
permission = "utils.pmtoggle"
|
||||
|
||||
@hook.command("tm")
|
||||
def on_toggle_message_command(sender, args):
|
||||
def on_toggle_message_command(sender, command, label, args):
|
||||
if not sender.hasPermission(permission) or not is_player(sender):
|
||||
noperm(sender)
|
||||
return True
|
||||
|
||||
68
reports.py
68
reports.py
@@ -2,6 +2,7 @@ from helpers import *
|
||||
from java.util.UUID import fromString as juuid
|
||||
import time
|
||||
import thread
|
||||
from traceback import format_exc as trace
|
||||
|
||||
|
||||
time_format = "%Y.%m.%d %H:%M"
|
||||
@@ -13,19 +14,26 @@ rp_permission = "utils.rp"
|
||||
|
||||
def print_help(sender):
|
||||
msg(sender, " &2/report <text> &eReport something")
|
||||
msg(sender, " &2/rp list &eList unresolved reports (id, player, text)")
|
||||
msg(sender, " &2/rp open|closed &eList open/closed reports (id, player, text)")
|
||||
msg(sender, " &2/rp tp <id> &eTeleport to report's location & show details")
|
||||
msg(sender, " &2/rp del <id> &eResolve a report")
|
||||
msg(sender, " &2/rp close <id> &eResolve a report")
|
||||
msg(sender, " &2/rp del <id> &eDelete a report (admin only)")
|
||||
|
||||
|
||||
def print_list(sender):
|
||||
def print_list(sender, closed):
|
||||
try: # new thread, anything can happen.
|
||||
msg(sender, "&a" + str(len(reports)) + " reports:")
|
||||
for i, report in enumerate(reports):
|
||||
targeted_reports = enumerate(reports)
|
||||
for i, report in targeted_reports:
|
||||
if report["closed"] != closed:
|
||||
targeted_reports.pop(report)
|
||||
|
||||
msg(sender, "&a%s %s reports:" % (len(targeted_reports), "closed" if closed else "open"))
|
||||
for i, report in targeted_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"]))
|
||||
except:
|
||||
warn("Failed to complete report's print_list() thread")
|
||||
error(trace())
|
||||
|
||||
|
||||
def tp_report(sender, rep_id):
|
||||
@@ -35,18 +43,34 @@ def tp_report(sender, rep_id):
|
||||
else:
|
||||
report = reports[rep_id]
|
||||
safetp(sender, server.getWorld(report["world"]), report["x"], report["y"], report["z"], report["yaw"], report["pitch"])
|
||||
msg(sender, "&aTeleported to report #%s" % rep_id )
|
||||
msg(sender, "&aTeleported to %s&areport #%s" % ("&cclosed " if report["closed"] else "", rep_id))
|
||||
|
||||
|
||||
def solve_report(sender, rep_id):
|
||||
if len(reports) > rep_id >= 0:
|
||||
report = reports[rep_id]
|
||||
report["closed"] = True
|
||||
save_reports()
|
||||
msg(sender, "&aReport #%s solved." % rep_id)
|
||||
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:
|
||||
msg(sender, "&cThat report does not exist!")
|
||||
|
||||
|
||||
def delete_report(sender, rep_id):
|
||||
if not sender.hasPermission(rp_permission + ".del"):
|
||||
noperm(sender)
|
||||
return
|
||||
if len(reports) > rep_id >= 0:
|
||||
report = reports[rep_id]
|
||||
reports.pop(rep_id)
|
||||
del reports[report]
|
||||
save_reports()
|
||||
msg(sender, "&aReport #%s deleted." % rep_id)
|
||||
reporter = server.getOfflinePlayer(juuid(report["uuid"]))
|
||||
plugin_header(reporter, "Report")
|
||||
msg(reporter, "&aReport '&e%s&a' was resolved by %s." % (report["msg"], sender.getName()))
|
||||
msg(reporter, "&aReport '&e%s&a' was &cdeleted &aby %s." % (report["msg"], sender.getName()))
|
||||
else:
|
||||
msg(sender, "&cThat report does not exist!")
|
||||
|
||||
@@ -56,13 +80,15 @@ def save_reports():
|
||||
|
||||
|
||||
@hook.command("rp")
|
||||
def on_rp_command(sender, args):
|
||||
def on_rp_command(sender, command, label, args):
|
||||
if sender.hasPermission(rp_permission):
|
||||
plugin_header(sender, "Reports")
|
||||
if len(args) > 0:
|
||||
if args[0] == "list":
|
||||
if args[0] == "closed":
|
||||
# needs to run in seperate thread because of getOfflinePlayer
|
||||
thread.start_new_thread(print_list, (sender,))
|
||||
thread.start_new_thread(print_list, (sender, True,))
|
||||
elif args[0] == "open":
|
||||
thread.start_new_thread(print_list, (sender, False,))
|
||||
else:
|
||||
if not checkargs(sender, args, 2, 2):
|
||||
return True
|
||||
@@ -77,6 +103,8 @@ def on_rp_command(sender, args):
|
||||
msg(sender, "&conly players can do this")
|
||||
return True
|
||||
tp_report(sender, repid)
|
||||
elif args[0] == "close":
|
||||
solve_report(sender, repid)
|
||||
elif args[0] == "del":
|
||||
delete_report(sender, repid)
|
||||
else:
|
||||
@@ -89,7 +117,7 @@ def on_rp_command(sender, args):
|
||||
|
||||
|
||||
@hook.command("report")
|
||||
def on_report_command(sender, args):
|
||||
def on_report_command(sender, command, label, args):
|
||||
plugin_header(sender, "Report")
|
||||
if not is_player(sender):
|
||||
msg(sender, "&conly players can do this")
|
||||
@@ -109,7 +137,8 @@ def on_report_command(sender, args):
|
||||
"yaw": int(loc.yaw),
|
||||
"pitch": int(loc.pitch),
|
||||
"world": loc.getWorld().name,
|
||||
"time": time.strftime(time_format)
|
||||
"time": time.strftime(time_format),
|
||||
"closed": False
|
||||
}
|
||||
reports.append(report)
|
||||
save_reports()
|
||||
@@ -125,9 +154,9 @@ def reports_reminder(): # needs 2 args for unknown reason
|
||||
if not check_reports:
|
||||
info("Reports reminder thread killed.")
|
||||
thread.exit()
|
||||
if len(reports) > 0:
|
||||
broadcast(rp_permission, "&2--=[ Reports ]=--")
|
||||
broadcast(rp_permission, "&aThere are %s pending reports!" % len(reports))
|
||||
targeted_reports = get_reports(False)
|
||||
if len(targeted_reports) > 0:
|
||||
broadcast(rp_permission, "&2--=[ Reports ]=--\n&aThere are %s open reports!" % len(targeted_reports))
|
||||
|
||||
|
||||
def stop_reporting():
|
||||
@@ -135,5 +164,12 @@ def stop_reporting():
|
||||
info("Ending reports reminder thread")
|
||||
check_reports = False
|
||||
|
||||
def get_reports(closed):
|
||||
targeted_reports = []
|
||||
for report in reports:
|
||||
if report["closed"] == closed:
|
||||
targeted_reports.add(report)
|
||||
return targeted_reports
|
||||
|
||||
|
||||
thread.start_new_thread(reports_reminder, ())
|
||||
@@ -48,7 +48,7 @@ def search_lols(sender, keyword):
|
||||
|
||||
|
||||
@hook.command("lol")
|
||||
def on_lol_command(sender, args):
|
||||
def on_lol_command(sender, command, label, args):
|
||||
plugin_header(sender, "SayLol")
|
||||
|
||||
cmd = args[0] if len(args) > 0 else None
|
||||
|
||||
@@ -38,7 +38,7 @@ def spawn(dispname, sender, x, y, z):
|
||||
|
||||
|
||||
@hook.command("spawnplayer")
|
||||
def on_spawnplayer_command(sender, args):
|
||||
def on_spawnplayer_command(sender, command, label, args):
|
||||
global amount, row, ground, goup
|
||||
|
||||
# X and Z position
|
||||
|
||||
@@ -99,13 +99,13 @@ def tokengen_command(sender, args):
|
||||
|
||||
|
||||
@hook.command("token")
|
||||
def on_token_command(sender, args):
|
||||
def on_token_command(sender, command, label, args):
|
||||
thread.start_new_thread(token_command, (sender,))
|
||||
return True
|
||||
|
||||
|
||||
@hook.command("gettoken")
|
||||
def on_gettoken_command(sender, args):
|
||||
def on_gettoken_command(sender, command, label, args):
|
||||
thread.start_new_thread(tokengen_command, (sender, args))
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user