summaryrefslogtreecommitdiff
path: root/nametags.py
blob: 4d86bbe4693b26df7cca231758924b69645ec9fe (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
from helpers import *

##############################################################
#                                                            #
# This module automatically puts people in the corresponding #
# scoreboard team so that their name is colored properly and #
# tab will be nicely sorted.                                 #
#                                                            #
##############################################################

ranks = ["visitor", "member", "builder", "trusted", "trainingmod", "mod", "admin"]
# prefixes are used for sorting in the tab list
prefixes = {"admin":"a", "mod":"b", "trainingmod":"c", "trusted":"d", "builder":"e", "member":"f","visitor":"g"}

@hook.event("player.PlayerJoinEvent", "low")
def on_player_join(event):
    player = event.getPlayer()
    team = get_team(player)
    if team:
        cmd = "scoreboard teams join %s %s" % (team, player.getName())
        server.dispatchCommand(server.getConsoleSender(), cmd)

def get_rank(player):
    player_rank = None
    for rank in ranks:
        if not player.hasPermission("group.%s" % rank):
            break
        player_rank = rank
    if not player_rank:
        warn("Couldn't find rank for player %s" % player.getName())
    return player_rank

def get_team(player):
    rank = get_rank(player)
    if rank:
        prefix = prefixes.get(rank)
        return "_".join([prefix, rank])