37 lines
1.4 KiB
Python
Executable File
37 lines
1.4 KiB
Python
Executable File
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]) |