summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/modules/nametags
diff options
context:
space:
mode:
authorDavid <david@panic.tk>2018-11-07 23:50:06 +0100
committerDavid <david@panic.tk>2018-11-07 23:50:06 +0100
commit604cf01967ede98bf5024e4926bb0777fc4e8eee (patch)
treee2fa63d7e683769ee3bf3eddc75280648e92eb04 /src/main/java/com/redstoner/modules/nametags
parente86c52ef7c0e1e33c6af0e8674b038976bec11cc (diff)
Converted Modules to gradle
Diffstat (limited to 'src/main/java/com/redstoner/modules/nametags')
-rw-r--r--src/main/java/com/redstoner/modules/nametags/Nametags.cmd11
-rw-r--r--src/main/java/com/redstoner/modules/nametags/Nametags.java130
2 files changed, 141 insertions, 0 deletions
diff --git a/src/main/java/com/redstoner/modules/nametags/Nametags.cmd b/src/main/java/com/redstoner/modules/nametags/Nametags.cmd
new file mode 100644
index 0000000..4095b42
--- /dev/null
+++ b/src/main/java/com/redstoner/modules/nametags/Nametags.cmd
@@ -0,0 +1,11 @@
+command tab {
+ sort {
+ help Resorts the entirety of tab.;
+ run sort;
+ }
+ sort [string:player] {
+ help Resorts one player.;
+ run sortspecific player;
+ }
+ perm utils.tab.admin;
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/modules/nametags/Nametags.java b/src/main/java/com/redstoner/modules/nametags/Nametags.java
new file mode 100644
index 0000000..3a66b18
--- /dev/null
+++ b/src/main/java/com/redstoner/modules/nametags/Nametags.java
@@ -0,0 +1,130 @@
+package com.redstoner.modules.nametags;
+
+import java.util.ArrayList;
+
+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.event.server.ServerCommandEvent;
+
+import com.nemez.cmdmgr.Command;
+import com.redstoner.annotations.AutoRegisterListener;
+import com.redstoner.annotations.Commands;
+import com.redstoner.annotations.Version;
+import com.redstoner.misc.CommandHolderType;
+import com.redstoner.misc.Main;
+import com.redstoner.modules.Module;
+
+@Commands(CommandHolderType.File)
+@AutoRegisterListener
+@Version(major = 4, minor = 1, revision = 2, compatible = 4)
+public class Nametags implements Module, Listener
+{
+ @EventHandler
+ public void onPlayerJoin(PlayerJoinEvent event)
+ {
+ sortSpecific(event.getPlayer());
+ }
+
+ @EventHandler
+ public void commandPreprocessEvent(PlayerCommandPreprocessEvent event)
+ {
+ ArrayList<Player> toSort = new ArrayList<>();
+ if (event.getMessage().contains("promote") || event.getMessage().contains("demote")
+ || event.getMessage().matches("pex user .* group (set|add|leave)"))
+ {
+ String[] args = event.getMessage().split(" ");
+ for (String s : args)
+ {
+ Player p = Bukkit.getPlayer(s);
+ if (p != null)
+ toSort.add(p);
+ }
+ }
+ Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ for (Player p : toSort)
+ sortSpecific(p);
+ }
+ });
+ }
+
+ @EventHandler
+ public void consoleCommand(ServerCommandEvent event)
+ {
+ ArrayList<Player> toSort = new ArrayList<>();
+ if (event.getCommand().contains("promote") || event.getCommand().contains("demote")
+ || event.getCommand().matches("pex user .* group (set|add|leave)"))
+ {
+ String[] args = event.getCommand().split(" ");
+ for (String s : args)
+ {
+ Player p = Bukkit.getPlayer(s);
+ if (p != null)
+ toSort.add(p);
+ }
+ }
+ Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ for (Player p : toSort)
+ sortSpecific(p);
+ }
+ });
+ }
+
+ @Command(hook = "sort")
+ public boolean sortAll(CommandSender sender)
+ {
+ for (Player p : Bukkit.getOnlinePlayers())
+ sortSpecific(p);
+ getLogger().message(sender, "Sorted tab for ya!");
+ return true;
+ }
+
+ @Command(hook = "sortspecific")
+ public boolean sortSpecific(CommandSender sender, String player)
+ {
+ Player p = Bukkit.getPlayer(player);
+ if (p == null)
+ {
+ getLogger().message(sender, true, "That player couldn't be found!");
+ return true;
+ }
+ else
+ sortSpecific(p);
+ getLogger().message(sender, "Sorted §e" + player + " §7for ya!");
+ return true;
+ }
+
+ public void sortSpecific(Player player)
+ {
+ Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
+ "scoreboard teams join " + getTeam(player) + " " + player.getName());
+ }
+
+ private String getTeam(Player player)
+ {
+ String[] teams = new String[] {"admin", "mod", "trainingmod", "trusted", "builder", "member", "visitor",
+ "bots"};
+ char prefix = 'a';
+ for (String team : teams)
+ {
+ if (player.hasPermission("group." + team))
+ {
+ return prefix + "_" + team;
+ }
+ prefix++;
+ }
+ return (prefix - 1) + "_" + teams[teams.length - 1];
+ }
+}