From f03f34777b1d0ddc95c2ddb17e6eddfd832a8332 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 14 Feb 2016 22:24:11 +0100 Subject: Added tabnames module, disabled iptracker due to instability --- main.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 7411d17..2d6f253 100644 --- a/main.py +++ b/main.py @@ -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", + # tabnames module to make players names colored on their chars and sort tab after ranks + "tabnames" ] shared["modules"] = {} for module in shared["load_modules"]: -- cgit v1.2.3 From 70f2001e7b24bf35202d5d255c3a3f7398c708af Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 14 Feb 2016 22:25:02 +0100 Subject: initial commit, adding the tabnames module --- tabnames.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 tabnames.py diff --git a/tabnames.py b/tabnames.py new file mode 100755 index 0000000..049098c --- /dev/null +++ b/tabnames.py @@ -0,0 +1,35 @@ +import mysqlhack +import org.bukkit as bukkit +import json +from java.util import UUID as UUID +from helpers import * +from org.bukkit import * +from traceback import format_exc as trace +from iptracker_secrets import * + +tabnames_version = "v1.0.0" + +############################################################## +# # +# 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", "breaker"] +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): + scoreboard_team = prefix(get_Rank(event.getPlayer())) + bukkit.Bukkit.getServer().dispatchCommand(bukkit.Bukkit.getServer().getConsoleSender(), "scoreboard teams join " + scoreboard_team + " " + event.getPlayer().getName()) + +def get_Rank(player): + for i in range(0, len(ranks) - 1): + if not player.hasPermission("group." + ranks[i]): + break + return ranks[i-1] + +def prefix(rank): + return prefixes.get(rank) + "_" + rank -- cgit v1.2.3 From 91afa684cd09cd4638ee74733a5cb60b2e4a247f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 14 Feb 2016 22:33:44 +0100 Subject: removed unnessecary imports, code cleanup --- tabnames.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tabnames.py b/tabnames.py index 049098c..c0848c0 100755 --- a/tabnames.py +++ b/tabnames.py @@ -1,11 +1,6 @@ -import mysqlhack import org.bukkit as bukkit -import json -from java.util import UUID as UUID from helpers import * from org.bukkit import * -from traceback import format_exc as trace -from iptracker_secrets import * tabnames_version = "v1.0.0" @@ -23,7 +18,8 @@ prefixes = {"admin":"a", "mod":"b", "modintraining":"c", "trusted":"d", "builder @hook.event("player.PlayerJoinEvent", "low") def on_player_join(event): scoreboard_team = prefix(get_Rank(event.getPlayer())) - bukkit.Bukkit.getServer().dispatchCommand(bukkit.Bukkit.getServer().getConsoleSender(), "scoreboard teams join " + scoreboard_team + " " + event.getPlayer().getName()) + bukkit.Bukkit.getServer().dispatchCommand(bukkit.Bukkit.getServer().getConsoleSender(), + "scoreboard teams join " + scoreboard_team + " " + event.getPlayer().getName()) def get_Rank(player): for i in range(0, len(ranks) - 1): -- cgit v1.2.3 From 5a0477fdbfaa222350c62ce948d8371c34bd538f Mon Sep 17 00:00:00 2001 From: jomo Date: Sun, 14 Feb 2016 23:52:50 +0100 Subject: clean up tabnames doesn't throw exceptions when group can't be found, will print warning instead --- tabnames.py | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/tabnames.py b/tabnames.py index c0848c0..65e1a2c 100755 --- a/tabnames.py +++ b/tabnames.py @@ -1,6 +1,4 @@ -import org.bukkit as bukkit from helpers import * -from org.bukkit import * tabnames_version = "v1.0.0" @@ -12,20 +10,29 @@ tabnames_version = "v1.0.0" # # ############################################################## -ranks = ["visitor", "member", "builder", "trusted", "modintraining", "mod", "admin", "breaker"] +ranks = ["visitor", "member", "builder", "trusted", "modintraining", "mod", "admin"] 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): - scoreboard_team = prefix(get_Rank(event.getPlayer())) - bukkit.Bukkit.getServer().dispatchCommand(bukkit.Bukkit.getServer().getConsoleSender(), - "scoreboard teams join " + scoreboard_team + " " + event.getPlayer().getName()) + 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): - for i in range(0, len(ranks) - 1): - if not player.hasPermission("group." + ranks[i]): +def get_rank(player): + player_rank = None + for rank in ranks: + if not player.hasPermission("group.%s" % rank): break - return ranks[i-1] + player_rank = rank + if not player_rank: + warn("Couldn't find rank for player %s" % player.getName()) + return player_rank -def prefix(rank): - return prefixes.get(rank) + "_" + 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 -- cgit v1.2.3 From 6a4d1447ece65d7cfcfba6b9596f60003e436490 Mon Sep 17 00:00:00 2001 From: jomo Date: Mon, 15 Feb 2016 01:27:13 +0100 Subject: rename tabnames to nametags I think it's a more descriptive name --- main.py | 6 +++--- nametags.py | 37 +++++++++++++++++++++++++++++++++++++ tabnames.py | 38 -------------------------------------- 3 files changed, 40 insertions(+), 41 deletions(-) create mode 100755 nametags.py delete mode 100755 tabnames.py diff --git a/main.py b/main.py index 2d6f253..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 @@ -102,8 +102,8 @@ shared["load_modules"] = [ #"iptracker", #server signs for everyone "serversigns", - # tabnames module to make players names colored on their chars and sort tab after ranks - "tabnames" + # 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 diff --git a/tabnames.py b/tabnames.py deleted file mode 100755 index 65e1a2c..0000000 --- a/tabnames.py +++ /dev/null @@ -1,38 +0,0 @@ -from helpers import * - -tabnames_version = "v1.0.0" - -############################################################## -# # -# 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 = {"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 -- cgit v1.2.3