summaryrefslogtreecommitdiff
path: root/misc.py
diff options
context:
space:
mode:
authorDico200 <dico.karssiens@gmail.com>2015-04-10 00:37:51 +0200
committerDico200 <dico.karssiens@gmail.com>2015-04-10 00:37:51 +0200
commitf3833a6733ec6a8d70e5d7a49cf8e693671890ba (patch)
treed95f426ec977a5ae09d225213d2639b3e50c8cb4 /misc.py
parentd85b96f8752c43372f21a3c4ea2067326562977b (diff)
Untested change to add pyeval possibility to args
so you do like, for example: /pex user EVAL:server.getOfflinePlayer("Dico200").getUniqueId() this could also be used in chat. I know its pretty useless but useful in some cases.
Diffstat (limited to 'misc.py')
-rw-r--r--misc.py39
1 files changed, 38 insertions, 1 deletions
diff --git a/misc.py b/misc.py
index 802508c..782757f 100644
--- a/misc.py
+++ b/misc.py
@@ -157,6 +157,27 @@ def eval_thread(sender, code):
msg(sender, ">>> %s: %s" % (eclass.__name__, e) + "\n ", False, "c")
thread.exit()
+def eval_argument_thread(event):
+ words = event.getMessage()[5:].split(" ")
+ for i in range(len(words)):
+ word = words[i]
+ if is_pyeval_call(word):
+ code = word[5:]
+ try:
+ result = unicode(eval(code))
+ except:
+ e = exc_info()[1]
+ try:
+ eclass = e.__class__
+ except AttributeError:
+ eclass = type(e)
+ msg(event.getPlayer(), ">>> %s: %s" % (eclass.__name__, e) + "\n ", False, "c")
+ result = code
+ words[i] = result
+ event.setMessage(" ".join(words))
+ thread.exit()
+
+
@simplecommand("pyeval",
usage = "[code..]",
description = "Runs python [code..] and returns the result",
@@ -185,4 +206,20 @@ def on_player_teleport(event):
player = event.getPlayer()
if not event.isCancelled() and str(event.getCause()) == "SPECTATE" and not player.hasPermission("utils.tp.spectate"):
event.setCancelled(True)
- msg(event.getPlayer(), "&cSpectator teleportation is disabled") \ No newline at end of file
+ msg(event.getPlayer(), "&cSpectator teleportation is disabled")
+
+
+@hook.event("player.AsyncPlayerChatEvent", "lowest")
+def on_chat(event):
+ user = event.getPlayer()
+ if user.hasPermission("utils.pyeval"):
+ thread.start_new_thread(event)
+
+@hook.event("player.PlayerCommandPreprocessEvent", "lowest")
+def on_cmd(event):
+ user = event.getPlayer()
+ if user.hasPermission("utils.pyeval"):
+ thread.start_new_thread(event)
+
+def is_pyeval_call(string):
+ return len(string) > 5 and string[:5] == "EVAL:"