summaryrefslogtreecommitdiff
path: root/tag.py
blob: b2aa98dbd8d810ee2665714edc86db8529dcd444 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from helpers import *

add_perm = "utils.tag.add"
del_perm = "utils.tag.del"
check_perm = "utils.tag.check"

data = open_json_file("tag", {})

@hook.command("tag")
def command(sender, command, label, args):
    if len(args) > 0:
        if str(args[0]) == "add":
            if sender.hasPermission(add_perm):
                if len(args) > 2:
                    add(sender, args[1:])
                else:
                    msg(sender, "&a-&c Usage: /tag add <name> <reason>")
            else:
                noperm(sender)
        elif str(args[0]) == "check":
            if sender.hasPermission(check_perm):
                if len(args) == 2:
                    check(sender, args[1:])
                else:
                    msg(sender, "&a-&c Usage: /tag check <name>")
            else:
                noperm(sender)
        elif str(args[0]) == "del":
            if sender.hasPermission(del_perm):
                if len(args) == 3:
                    delete(sender, args[1:])
                else:
                    msg(sender, "&a-&c Usage: /tag del <id>")
        else:
            msg(sender, "&a-&c Unknown subcommand! (add, check, del)")
    else:
        msg(sender, "&a&c Usage: /tag add/check/del")
    return True

def delete(sender, args):
    player = server.getOfflinePlayer(args[0])
    uuid = uid(player)
    try:
        if data[uuid] == None:
            pass
    except:
        msg(sender, "&a-&e There are no notes about this player")
        return
    if int(args[1]) - 1 >= len(data[uuid]):
        msg(sender, "&a-&c Id of note is out of range")
        return
    del (data[uuid])[int(args[1]) - 1]
    save_json_file("tag", data)
    msg(sender, "&a-&e Deleted note at %s" % args[1])

def add(sender, args):
    player = server.getOfflinePlayer(args[0])
    uuid = uid(player)
    try:
        if data[uuid] == None:
            pass
    except:
        data[uuid] = []
    data[uuid].append(" ".join(args[1:]))
    msg(sender, "&a-&e Note added")
    save_json_file("tag", data)

def check(sender, args):
    player = server.getOfflinePlayer(args[0])
    uuid = uid(player)
    try:
        num = 0
        for tag in data[uuid]:
            num += 1
            msg(sender, "&a-&e %s: %s" % (str(num), str(tag)))
    except:
        msg(sender, "&a-&e There are no notes about this player")