summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjomo <github@jomo.tv>2016-02-15 01:34:56 +0100
committerjomo <github@jomo.tv>2016-02-15 01:34:56 +0100
commitddc4a9b45787e113138670e1b5ebcdd2f5eb84fa (patch)
tree22299614e2be2eaeab83882f5937d33fdb3cf8c6
parent799584df46a0c53484a3b8cab11efdd4d67d319a (diff)
parent6a4d1447ece65d7cfcfba6b9596f60003e436490 (diff)
Merge pull request #34 from RedstonerServer/tabnames
Adding tabnames, updating main
-rw-r--r--main.py10
-rwxr-xr-xnametags.py37
2 files changed, 43 insertions, 4 deletions
diff --git a/main.py b/main.py
index 7411d17..be3a65b 100644
--- a/main.py
+++ b/main.py
@@ -89,7 +89,7 @@ shared["load_modules"] = [
# Servercontrol extension for telnet access to logs/AC
#"servercontrol",
# Script helper plugin
- "scriptutils",
+ "scriptutils",
# Per-player notes
"tag",
# vanish toggle module - temporary fix
@@ -98,10 +98,12 @@ shared["load_modules"] = [
"punishments",
# a simple replacement for the buggy essentials /vanish
"vanish",
- # ip-tracking utility
- "iptracker",
+ # ip-tracking utility - disabled as of instability
+ #"iptracker",
#server signs for everyone
- "serversigns"
+ "serversigns",
+ # Makes player's names colored, sorts tab list by rank
+ "nametags"
]
shared["modules"] = {}
for module in shared["load_modules"]:
diff --git a/nametags.py b/nametags.py
new file mode 100755
index 0000000..88c0696
--- /dev/null
+++ b/nametags.py
@@ -0,0 +1,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", "modintraining", "mod", "admin"]
+# prefixes are used for sorting in the tab list
+prefixes = {"admin":"a", "mod":"b", "modintraining":"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]) \ No newline at end of file