我正在构建一种使用 Python 编写 CraftBukkit(Minecraft 改装服务器软件)脚本的方法。
为此,我使用 Jython 加载 Python 脚本,然后为事件添加装饰器等。
我目前正在实现事件装饰器,但我有一个问题:没有参数的装饰器工作正常,但是一旦我添加一个参数,它就会开始抱怨没有足够的参数。
这有效:
@script.event
def test(event):
print "hi" # Works
public void event(PyFunction func) {
return func;
}
这不会:
@script.event("player.PlayerMoveEvent", "normal")
def test(event):
print "player moved!" # TypeError: event(): 1st arg can't be coerced to org.python.core.PyFunction
public void event(PyFunction func, PyString eventType, PyString priority) {
// Do all kinds of crap
return func;
}
这是我的 Java 代码: http: //pastebin.com/GsULYdJr