summaryrefslogtreecommitdiff
path: root/wrapper_event.py
blob: 8632c70f8ff58a26ea035247ac9054cd9d0dce5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from wrapper import *
from util_events import utils_event, utils_events
from wrapper_player import *
from traceback import format_exc as print_traceback

class py_event(object):
    def __init__(self,event):
        self.event = event
        try:
            self.player = py_players[event.getPlayer()]
        except:
            warn("Player doesn't exist")

    @property
    def cancelled(self):
        return self.event.isCancelled()

    @cancelled.setter
    def cancelled(self, value):
        self.event.setCancelled(value)

    @property
    def message(self):
        try:
            return self.event.getMessage()
        except:
            raise AttributeError
    
    @message.setter
    def message(self, msg):
        try:
            self.event.setMessage(msg)
        except:
            raise AttributeError

def event_handler(event_name = None, priority = "normal", utils = False):
    if not utils:
        def decorator(wrapped):
            @hook.event(event_name, priority)
            def wrapper(event):
                try:
                    wrapped(py_event(event))
                except:
                    print(print_traceback())
        return decorator
    elif utils:
        def decorator(wrapped):
            @utils_event(event_name, priority, create_event = utils_events)
            def wrapper(*args):
                try:
                    wrapped(*args)
                except:
                    print(print_traceback())
        return decorator