diff options
author | David <david@panic.tk> | 2018-11-07 23:50:06 +0100 |
---|---|---|
committer | David <david@panic.tk> | 2018-11-07 23:50:06 +0100 |
commit | 604cf01967ede98bf5024e4926bb0777fc4e8eee (patch) | |
tree | e2fa63d7e683769ee3bf3eddc75280648e92eb04 /src/main/java/com/redstoner/modules/nametags | |
parent | e86c52ef7c0e1e33c6af0e8674b038976bec11cc (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.cmd | 11 | ||||
-rw-r--r-- | src/main/java/com/redstoner/modules/nametags/Nametags.java | 130 |
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]; + } +} |