Created nametags
This commit is contained in:
parent
295a1bf2b6
commit
398f71255c
120
src/com/redstoner/modules/nametags/NameTags.java
Normal file
120
src/com/redstoner/modules/nametags/NameTags.java
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
package com.redstoner.modules.nametags;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
|
import com.nemez.cmdmgr.Command;
|
||||||
|
import com.redstoner.annotations.AutoRegisterListener;
|
||||||
|
import com.redstoner.annotations.Version;
|
||||||
|
import com.redstoner.misc.Utils;
|
||||||
|
import com.redstoner.modules.Module;
|
||||||
|
|
||||||
|
@Version(major = 1, minor = 0, revision = 0)
|
||||||
|
@AutoRegisterListener
|
||||||
|
public class NameTags implements Module, Listener {
|
||||||
|
private boolean enabled = false;
|
||||||
|
private Scoreboard scoreboard = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
|
|
||||||
|
for (Rank rank : Rank.values()) {
|
||||||
|
if (scoreboard.getTeam(rank.getScoreboardName()) == null) {
|
||||||
|
scoreboard.registerNewTeam(rank.getScoreboardName());
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "scoreboard teams option " + rank.getScoreboardName() + " color " + rank.getColor());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean enabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
sb.append("command nametags {");
|
||||||
|
sb.append(" resort {");
|
||||||
|
sb.append(" help Re-sorts tab;");
|
||||||
|
sb.append(" perm utils.nametags.sort;");
|
||||||
|
sb.append(" run nt_resort;");
|
||||||
|
sb.append(" }");
|
||||||
|
sb.append("}");
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Command(hook = "nt_resort")
|
||||||
|
public void resortCmd(CommandSender sender) {
|
||||||
|
reSort();
|
||||||
|
Utils.sendMessage(sender, "Nametags", "&aResorted all players in tab! :P", '&');
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent e) {
|
||||||
|
reSort(e.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onCommand(PlayerCommandPreprocessEvent e) {
|
||||||
|
if (!e.isCancelled()) {
|
||||||
|
String[] cmdSplit = e.getMessage().split(" ")[0].split(":");
|
||||||
|
String cmd = cmdSplit[cmdSplit.length - 1].replaceFirst("/", "");
|
||||||
|
|
||||||
|
if (cmd.equalsIgnoreCase("promote") || cmd.equalsIgnoreCase("demote")) {
|
||||||
|
reSort();
|
||||||
|
} else if (cmd.equalsIgnoreCase("pex")) {
|
||||||
|
String[] splitMsg = e.getMessage().split(" ");
|
||||||
|
if (splitMsg.length > 1 && (splitMsg[1].equalsIgnoreCase("promote") || splitMsg[1].equalsIgnoreCase("demote"))) {
|
||||||
|
reSort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void reSort() {
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
reSort(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void reSort(Player player) {
|
||||||
|
String playerName = player.getName();
|
||||||
|
Rank rank = Rank.VISITOR;
|
||||||
|
|
||||||
|
for (Rank r : Rank.values()) {
|
||||||
|
if (player.hasPermission(r.getPermission())) {
|
||||||
|
if (r.getPriority() > rank.getPriority()) {
|
||||||
|
rank = r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Rank r : Rank.values()) {
|
||||||
|
Team team = scoreboard.getTeam(r.getScoreboardName());
|
||||||
|
|
||||||
|
if (team.hasEntry(playerName)) {
|
||||||
|
team.removeEntry(playerName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scoreboard.getTeam(rank.getScoreboardName()).addEntry(playerName);
|
||||||
|
}
|
||||||
|
}
|
89
src/com/redstoner/modules/nametags/Rank.java
Normal file
89
src/com/redstoner/modules/nametags/Rank.java
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
package com.redstoner.modules.nametags;
|
||||||
|
|
||||||
|
public enum Rank {
|
||||||
|
VISITOR, MEMBER, BUILDER, TRUSTED, TRAININGMOD, MOD, ADMIN;
|
||||||
|
|
||||||
|
public String getScoreboardName() {
|
||||||
|
switch (this) {
|
||||||
|
case VISITOR:
|
||||||
|
return "g_visitor";
|
||||||
|
case MEMBER:
|
||||||
|
return "f_member";
|
||||||
|
case BUILDER:
|
||||||
|
return "e_builder";
|
||||||
|
case TRUSTED:
|
||||||
|
return "d_trusted";
|
||||||
|
case TRAININGMOD:
|
||||||
|
return "c_trainingmod";
|
||||||
|
case MOD:
|
||||||
|
return "b_mod";
|
||||||
|
case ADMIN:
|
||||||
|
return "a_admin";
|
||||||
|
default:
|
||||||
|
return "g_visitor";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPermission() {
|
||||||
|
switch (this) {
|
||||||
|
case VISITOR:
|
||||||
|
return "group.visitor";
|
||||||
|
case MEMBER:
|
||||||
|
return "group.member";
|
||||||
|
case BUILDER:
|
||||||
|
return "group.builder";
|
||||||
|
case TRUSTED:
|
||||||
|
return "group.trusted";
|
||||||
|
case TRAININGMOD:
|
||||||
|
return "group.trainingmod";
|
||||||
|
case MOD:
|
||||||
|
return "group.mod";
|
||||||
|
case ADMIN:
|
||||||
|
return "group.admin";
|
||||||
|
default:
|
||||||
|
return "group.visitor";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPriority() {
|
||||||
|
switch (this) {
|
||||||
|
case VISITOR:
|
||||||
|
return 1;
|
||||||
|
case MEMBER:
|
||||||
|
return 2;
|
||||||
|
case BUILDER:
|
||||||
|
return 3;
|
||||||
|
case TRUSTED:
|
||||||
|
return 4;
|
||||||
|
case TRAININGMOD:
|
||||||
|
return 5;
|
||||||
|
case MOD:
|
||||||
|
return 6;
|
||||||
|
case ADMIN:
|
||||||
|
return 7;
|
||||||
|
default:
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getColor() {
|
||||||
|
switch (this) {
|
||||||
|
case VISITOR:
|
||||||
|
return "gray";
|
||||||
|
case MEMBER:
|
||||||
|
return "white";
|
||||||
|
case BUILDER:
|
||||||
|
return "green";
|
||||||
|
case TRUSTED:
|
||||||
|
return "dark_aqua";
|
||||||
|
case TRAININGMOD:
|
||||||
|
return "red";
|
||||||
|
case MOD:
|
||||||
|
return "red";
|
||||||
|
case ADMIN:
|
||||||
|
return "dark_red";
|
||||||
|
default:
|
||||||
|
return "gray";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user