From 39792675dc2d5a93281f794262bcb2abb4f08482 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 1 Sep 2017 16:27:29 +0100 Subject: [PATCH] Hub merges --- .../core/achievement/AchievementManager.java | 59 +++++-- .../src/mineplex/core/npc/NpcManager.java | 87 +++++++--- .../src/mineplex/hub/HubManager.java | 157 +++++++++++------- 3 files changed, 206 insertions(+), 97 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementManager.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementManager.java index ff1258eb8..c1aafddbe 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementManager.java @@ -9,10 +9,10 @@ import org.bukkit.event.player.PlayerQuitEvent; import mineplex.core.MiniPlugin; import mineplex.core.account.CoreClientManager; +import mineplex.core.account.permissions.Permission; +import mineplex.core.account.permissions.PermissionGroup; import mineplex.core.achievement.command.StatsCommand; -import mineplex.core.achievement.leveling.LevelingManager; import mineplex.core.achievement.ui.AchievementShop; -import mineplex.core.common.Rank; import mineplex.core.common.util.NautHashMap; import mineplex.core.donation.DonationManager; import mineplex.core.elo.EloManager; @@ -23,6 +23,16 @@ import mineplex.core.stats.event.StatChangeEvent; public class AchievementManager extends MiniPlugin { + public enum Perm implements Permission + { + FAKE_LEVEL_50, + FAKE_LEVEL_30, + FAKE_LEVEL_15, + FAKE_LEVEL_5, + SEE_FULL_STATS, + STATS_COMMAND, + } + private CoreClientManager _clientManager; private IncognitoManager _incognitoManager; private StatsManager _statsManager; @@ -32,7 +42,7 @@ public class AchievementManager extends MiniPlugin private int _interfaceSlot = 7; private boolean _giveInterfaceItem = false; - private NautHashMap> _log = new NautHashMap<>(); + private NautHashMap> _log = new NautHashMap>(); private boolean _shopEnabled = true; @@ -45,8 +55,18 @@ public class AchievementManager extends MiniPlugin _eloManager = eloManager; _clientManager = clientManager; _shop = new AchievementShop(this, _statsManager, clientManager, donationManager, "Achievement"); - - new LevelingManager(this); + + generatePermissions(); + } + + private void generatePermissions() + { + PermissionGroup.MOD.setPermission(Perm.SEE_FULL_STATS, true, true); + PermissionGroup.MOD.setPermission(Perm.FAKE_LEVEL_5, true, true); + PermissionGroup.SRMOD.setPermission(Perm.FAKE_LEVEL_15, true, true); + PermissionGroup.ADMIN.setPermission(Perm.FAKE_LEVEL_30, true, true); + PermissionGroup.LT.setPermission(Perm.FAKE_LEVEL_50, true, true); + PermissionGroup.PLAYER.setPermission(Perm.STATS_COMMAND, true, true); } public AchievementData get(Player player, Achievement type) @@ -197,27 +217,30 @@ public class AchievementManager extends MiniPlugin return true; } - public int getMineplexLevelNumber(Player sender, Rank rank) + public int getMineplexLevelNumber(Player sender) { int level = get(sender, Achievement.GLOBAL_MINEPLEX_LEVEL).getLevel(); - if (rank.has(Rank.MODERATOR)) - level = Math.max(level, 5); - if (rank.has(Rank.SNR_MODERATOR)) - level = Math.max(level, 15); - if (rank.has(Rank.JNR_DEV)) - level = Math.max(level, 25); - if (rank.has(Rank.ADMIN)) - level = Math.max(level, 30 + get(sender, Achievement.GLOBAL_GEM_HUNTER).getLevel()); - if (rank.has(Rank.OWNER)) + if (_clientManager.Get(sender).hasPermission(Perm.FAKE_LEVEL_50)) + { level = Math.max(level, 50 + get(sender, Achievement.GLOBAL_GEM_HUNTER).getLevel()); + } else if (_clientManager.Get(sender).hasPermission(Perm.FAKE_LEVEL_30)) + { + level = Math.max(level, 30 + get(sender, Achievement.GLOBAL_GEM_HUNTER).getLevel()); + } else if (_clientManager.Get(sender).hasPermission(Perm.FAKE_LEVEL_15)) + { + level = Math.max(level, 15); + } else if (_clientManager.Get(sender).hasPermission(Perm.FAKE_LEVEL_5)) + { + level = Math.max(level, 5); + } return level; } - public String getMineplexLevel(Player sender, Rank rank) + public String getMineplexLevel(Player sender) { - return Achievement.getExperienceString(getMineplexLevelNumber(sender, rank)) + " " + ChatColor.RESET; + return Achievement.getExperienceString(getMineplexLevelNumber(sender)) + " " + ChatColor.RESET; } public CoreClientManager getClientManager() @@ -239,4 +262,4 @@ public class AchievementManager extends MiniPlugin { return _statsManager; } -} +} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java index f74559e86..bd9c520a1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/npc/NpcManager.java @@ -2,20 +2,40 @@ package mineplex.core.npc; import java.sql.Connection; import java.sql.SQLException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import java.util.UUID; -import com.mojang.authlib.GameProfile; -import mineplex.core.aprilfools.AprilFoolsManager; -import mineplex.core.common.skin.SkinData; -import mineplex.core.disguise.DisguiseManager; -import mineplex.core.disguise.disguises.DisguisePlayer; -import mineplex.core.utils.UtilGameProfile; -import org.bukkit.*; +import net.minecraft.server.v1_8_R3.EntityInsentient; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.DyeColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftCreature; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity; -import org.bukkit.entity.*; +import org.bukkit.entity.Ageable; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Sheep; +import org.bukkit.entity.Skeleton; +import org.bukkit.entity.Slime; +import org.bukkit.entity.Villager; +import org.bukkit.entity.Zombie; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.EntityCombustEvent; @@ -28,16 +48,18 @@ import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector; -import net.minecraft.server.v1_8_R3.EntityInsentient; +import org.jooq.Result; +import org.jooq.impl.DSL; import mineplex.core.MiniPlugin; -import mineplex.core.common.Rank; +import mineplex.core.account.permissions.Permission; +import mineplex.core.account.permissions.PermissionGroup; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilPlayer; import mineplex.core.creature.Creature; import mineplex.core.creature.event.CreatureKillEntitiesEvent; -import mineplex.serverdata.database.DBPool; +import mineplex.core.disguise.DisguiseManager; import mineplex.core.npc.command.NpcCommand; import mineplex.core.npc.event.NpcDamageByEntityEvent; import mineplex.core.npc.event.NpcInteractEntityEvent; @@ -46,8 +68,7 @@ import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.database.Tables; import mineplex.database.tables.records.NpcsRecord; -import org.jooq.Result; -import org.jooq.impl.DSL; +import mineplex.serverdata.database.DBPool; public class NpcManager extends MiniPlugin { @@ -84,14 +105,22 @@ public class NpcManager extends MiniPlugin } } + public enum Perm implements Permission + { + ADD_NPC_COMMAND, + CLEAR_NPCS_COMMAND, + DELETE_NPC_COMMAND, + NPC_HOME_COMMAND, + NPC_COMMAND, + REFRESH_NPCS_COMMAND, + } + private final Creature _creature; private final List _npcs = new ArrayList<>(); private final Queue _queuedNpcs = new LinkedList<>(); final Map _npcMap = new HashMap<>(); private final Set _npcDeletingPlayers = new HashSet<>(); - private final DisguiseManager _disguise; - public NpcManager(JavaPlugin plugin, Creature creature) { super("NpcManager", plugin); @@ -108,7 +137,7 @@ public class NpcManager extends MiniPlugin _plugin.getServer().getPluginManager().registerEvents(this, _plugin); - _disguise = require(DisguiseManager.class); + require(DisguiseManager.class); // try // { @@ -118,6 +147,18 @@ public class NpcManager extends MiniPlugin // { // e.printStackTrace(); // } + + generatePermissions(); + } + + private void generatePermissions() + { + PermissionGroup.ADMIN.setPermission(Perm.ADD_NPC_COMMAND, true, true); + PermissionGroup.DEV.setPermission(Perm.CLEAR_NPCS_COMMAND, true, true); + PermissionGroup.ADMIN.setPermission(Perm.DELETE_NPC_COMMAND, true, true); + PermissionGroup.ADMIN.setPermission(Perm.NPC_HOME_COMMAND, true, true); + PermissionGroup.ADMIN.setPermission(Perm.NPC_COMMAND, true, true); + PermissionGroup.ADMIN.setPermission(Perm.REFRESH_NPCS_COMMAND, true, true); } @Override @@ -129,14 +170,16 @@ public class NpcManager extends MiniPlugin public void help(Player caller, String message) { UtilPlayer.message(caller, F.main(_moduleName, "Commands List:")); - UtilPlayer.message(caller, F.help("/npc add [radius] [adult] [name]", "Create a new NPC.", Rank.DEVELOPER)); - UtilPlayer.message(caller, F.help("/npc del ", "Right click NPC to delete.", Rank.DEVELOPER)); - UtilPlayer.message(caller, F.help("/npc home", "Teleport NPCs to home locations.", Rank.DEVELOPER)); - UtilPlayer.message(caller, F.help("/npc clear", "Deletes all NPCs.", Rank.DEVELOPER)); - UtilPlayer.message(caller, F.help("/npc refresh", "Refresh NPCs from database.", Rank.DEVELOPER)); + UtilPlayer.message(caller, F.help("/npc add [radius] [adult] [name]", "Create a new NPC.", ChatColor.DARK_RED)); + UtilPlayer.message(caller, F.help("/npc del ", "Right click NPC to delete.", ChatColor.DARK_RED)); + UtilPlayer.message(caller, F.help("/npc home", "Teleport NPCs to home locations.", ChatColor.DARK_RED)); + UtilPlayer.message(caller, F.help("/npc clear", "Deletes all NPCs.", ChatColor.DARK_RED)); + UtilPlayer.message(caller, F.help("/npc refresh", "Refresh NPCs from database.", ChatColor.DARK_RED)); if (message != null) + { UtilPlayer.message(caller, F.main(_moduleName, ChatColor.RED + message)); + } } public void help(Player caller) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index 144a313a4..96808b078 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -2,6 +2,8 @@ package mineplex.hub; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.UUID; import net.md_5.bungee.api.chat.ComponentBuilder; @@ -46,6 +48,8 @@ import mineplex.core.Managers; import mineplex.core.MiniClientPlugin; import mineplex.core.account.CoreClient; import mineplex.core.account.CoreClientManager; +import mineplex.core.account.permissions.Permission; +import mineplex.core.account.permissions.PermissionGroup; import mineplex.core.achievement.AchievementManager; import mineplex.core.achievement.profile.ProfileManager; import mineplex.core.antispam.AntiSpamManager; @@ -56,7 +60,6 @@ import mineplex.core.boosters.BoosterManager; import mineplex.core.botspam.BotSpamManager; import mineplex.core.chat.ChatFormat; import mineplex.core.chat.IChatMessageFormatter; -import mineplex.core.common.Rank; import mineplex.core.common.currency.GlobalCurrency; import mineplex.core.common.util.C; import mineplex.core.common.util.F; @@ -146,6 +149,17 @@ import mineplex.minecraft.game.core.condition.ConditionManager; public class HubManager extends MiniClientPlugin implements IChatMessageFormatter { + public enum Perm implements Permission + { + GADGET_TOGGLE_COMMAND, + GAMEMODE_COMMAND, + AUTO_OP, + VANISH, + SPAWN_PM, + NEWS_COMMAND, + JOIN_FULL, + } + // ☃❅ Snowman! public HubType Type = HubType.Normal; @@ -190,9 +204,9 @@ public class HubManager extends MiniClientPlugin implements IChatMess private final String _serverName; private boolean _shuttingDown; - private HashMap _portalTime = new HashMap(); + private Map _portalTime = new HashMap<>(); - private HashMap> _creativeAdmin = new HashMap>(); + private Map> _creativeAdmin = new HashMap<>(); public HubManager(JavaPlugin plugin, BlockRestore blockRestore, CoreClientManager clientManager, IncognitoManager incognito, DonationManager donationManager, InventoryManager inventoryManager, ConditionManager conditionManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager, PreferencesManager preferences, PetManager petManager, PollManager pollManager, StatsManager statsManager, AchievementManager achievementManager, HologramManager hologramManager, NpcManager npcManager, PersonalServerManager personalServerManager, PacketHandler packetHandler, Punish punish, ServerStatusManager serverStatusManager, CustomDataManager customDataManager, ThankManager thankManager, BoosterManager boosterManager, CastleManager castleManager) { @@ -263,7 +277,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess _achievementManager.setGiveInterfaceItem(true); _packetHandler = packetHandler; - new NotificationManager(getPlugin(), clientManager, _preferences); + new NotificationManager(getPlugin(), clientManager); new BotSpamManager(plugin, clientManager, punish); ((CraftWorld) Bukkit.getWorlds().get(0)).getHandle().pvpMode = true; @@ -302,12 +316,20 @@ public class HubManager extends MiniClientPlugin implements IChatMess @Override public void setup(MineplexScoreboard scoreboard) { - for (Rank rank : Rank.values()) + for (PermissionGroup group : PermissionGroup.values()) { - if (rank == Rank.ALL) - scoreboard.getHandle().registerNewTeam(rank.ScoreboardTag).setPrefix(""); + if (!group.canBePrimary()) + { + continue; + } + if (!group.getDisplay(false, false, false, false).isEmpty()) + { + scoreboard.getHandle().registerNewTeam(group.name()).setPrefix(group.getDisplay(true, true, true, false) + ChatColor.RESET + " "); + } else - scoreboard.getHandle().registerNewTeam(rank.ScoreboardTag).setPrefix(rank.getTag(true, true) + ChatColor.RESET + " "); + { + scoreboard.getHandle().registerNewTeam(group.name()).setPrefix(""); + } } scoreboard.register(HubScoreboardLine.SERVER_TITLE) @@ -344,9 +366,9 @@ public class HubManager extends MiniClientPlugin implements IChatMess scoreboard.get(HubScoreboardLine.GEM_COUNT).write(GetDonation().Get(scoreboard.getOwner()).getBalance(GlobalCurrency.GEM)); scoreboard.get(HubScoreboardLine.SHARDS_COUNT).write(GetDonation().Get(scoreboard.getOwner()).getBalance(GlobalCurrency.TREASURE_SHARD)); - String rankName = getRankName(GetClients().Get(scoreboard.getOwner()).GetRank(), GetDonation().Get(scoreboard.getOwner())); + String rankName = getRankName(GetClients().Get(scoreboard.getOwner()).getPrimaryGroup(), GetDonation().Get(scoreboard.getOwner())); - Rank disguisedRank = GetClients().Get(scoreboard.getOwner()).getDisguisedRank(); + PermissionGroup disguisedRank = GetClients().Get(scoreboard.getOwner()).getDisguisedPrimaryGroup(); String disguisedAs = GetClients().Get(scoreboard.getOwner()).getDisguisedAs(); if (disguisedRank != null && disguisedAs != null) { @@ -364,19 +386,19 @@ public class HubManager extends MiniClientPlugin implements IChatMess HubClient hubclient = HubManager.this.Get(player); hubclient.setName(playerName); - CoreClient client = GetClients().Get(player.getUniqueId()); + PermissionGroup group = _clientManager.Get(player).getRealOrDisguisedPrimaryGroup(); for (MineplexScoreboard scoreboard : getScoreboards().values()) { - scoreboard.getHandle().getTeam(client.getRealOrDisguisedRank().ScoreboardTag).addEntry(playerName); + scoreboard.getHandle().getTeam(group.name()).addEntry(playerName); } if (get(player) != null) { for (Player player1 : Bukkit.getOnlinePlayers()) { - client = GetClients().Get(player1); - get(player).getHandle().getTeam(client.getRealOrDisguisedRank().ScoreboardTag).addEntry(player1.getName()); + group = _clientManager.Get(player1).getRealOrDisguisedPrimaryGroup(); + get(player).getHandle().getTeam(group.name()).addEntry(player1.getName()); } } } @@ -386,28 +408,34 @@ public class HubManager extends MiniClientPlugin implements IChatMess { Player player = Bukkit.getPlayerExact(playerName); - CoreClient client = GetClients().Get(player); + PermissionGroup group = _clientManager.Get(player).getRealOrDisguisedPrimaryGroup(); for (MineplexScoreboard scoreboard : getScoreboards().values()) { - scoreboard.getHandle().getTeam(client.getRealOrDisguisedRank().ScoreboardTag).removeEntry(playerName); + scoreboard.getHandle().getTeam(group.name()).removeEntry(playerName); } } - private String getRankName(Rank rank, Donor donor) + private String getRankName(PermissionGroup group, Donor donor) { - String rankName; - if (rank.has(Rank.ULTRA)) - rankName = rank.Name; - else if (donor.ownsUnknownSalesPackage("SuperSmashMobs ULTRA") || + String display = group.getDisplay(false, false, false, false); + if (display.isEmpty()) + { + if (donor.ownsUnknownSalesPackage("SuperSmashMobs ULTRA") || donor.ownsUnknownSalesPackage("Survival Games ULTRA") || donor.ownsUnknownSalesPackage("Minigames ULTRA") || donor.ownsUnknownSalesPackage("CastleSiege ULTRA") || donor.ownsUnknownSalesPackage("Champions ULTRA")) - rankName = "Single Ultra"; - else - rankName = "No Rank"; - return rankName; + { + display = "Single Ultra"; + } + else + { + display = "No Rank"; + } + } + + return display; } }; @@ -415,6 +443,27 @@ public class HubManager extends MiniClientPlugin implements IChatMess require(NewNPCManager.class); require(ProfileManager.class); + + generatePermissions(); + } + + private void generatePermissions() + { + PermissionGroup.ADMIN.setPermission(Perm.GADGET_TOGGLE_COMMAND, true, true); + PermissionGroup.ADMIN.setPermission(Perm.GAMEMODE_COMMAND, true, true); + PermissionGroup.ADMIN.setPermission(Perm.NEWS_COMMAND, true, true); + if (UtilServer.isDevServer() || UtilServer.isTestServer()) + { + PermissionGroup.ADMIN.setPermission(Perm.AUTO_OP, true, true); + PermissionGroup.QAM.setPermission(Perm.AUTO_OP, false, true); + } + else + { + PermissionGroup.LT.setPermission(Perm.AUTO_OP, true, true); + } + PermissionGroup.ADMIN.setPermission(Perm.VANISH, true, true); + PermissionGroup.TRAINEE.setPermission(Perm.SPAWN_PM, true, true); + PermissionGroup.ULTRA.setPermission(Perm.JOIN_FULL, true, true); } @Override @@ -500,21 +549,20 @@ public class HubManager extends MiniClientPlugin implements IChatMess // Reserved Slot Check if (Bukkit.getOnlinePlayers().size() - Bukkit.getServer().getMaxPlayers() >= 20) { - if (!client.GetRank().has(Rank.ULTRA)) + if (!client.hasPermission(Perm.JOIN_FULL)) { - Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable() + Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), () -> { - public void run() - { - _portal.sendPlayerToGenericServer(event.getPlayer(), GenericServer.HUB, Intent.KICK); - } + _portal.sendPlayerToGenericServer(event.getPlayer(), GenericServer.HUB, Intent.KICK); }); event.allow(); } } else + { event.allow(); + } } private boolean _made; @@ -522,14 +570,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess @EventHandler(priority = EventPriority.LOW) public void AdminOP(PlayerJoinEvent event) { - // Give developers operator on their servers - Rank minimum = Rank.OWNER; - if (UtilServer.isTestServer() || UtilServer.isDevServer()) - { - minimum = Rank.JNR_DEV; - } - - if (_clientManager.Get(event.getPlayer()).GetRank().has(minimum)) + if (_clientManager.Get(event.getPlayer()).hasPermission(Perm.AUTO_OP)) event.getPlayer().setOp(true); else event.getPlayer().setOp(false); @@ -603,7 +644,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess public void playerPrivateMessage(PrivateMessageEvent event) { //Dont Let PM Near Spawn! - if (UtilMath.offset2d(GetSpawn(), event.getSender().getLocation()) == 0 && !_clientManager.Get(event.getSender()).GetRank().has(Rank.HELPER)) + if (UtilMath.offset2d(GetSpawn(), event.getSender().getLocation()) == 0 && !!_clientManager.Get(event.getSender()).hasPermission(Perm.SPAWN_PM)) { UtilPlayer.message(event.getSender(), F.main("Chat", "You must leave spawn before you can Private Message!")); event.setCancelled(true); @@ -613,7 +654,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess @EventHandler public void Incog(IncognitoHidePlayerEvent event) { - if (!_clientManager.hasRank(event.getPlayer(), Rank.ADMIN)) + if (!_clientManager.Get(event.getPlayer()).hasPermission(Perm.VANISH)) { event.setCancelled(true); } @@ -626,7 +667,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess return; //Dont Let Chat Near Spawn! - if (UtilMath.offset2d(GetSpawn(), event.getPlayer().getLocation()) == 0 && !_clientManager.Get(event.getPlayer()).GetRank().has(Rank.HELPER)) + if (UtilMath.offset2d(GetSpawn(), event.getPlayer().getLocation()) == 0 && !_clientManager.Get(event.getPlayer()).hasPermission(Perm.SPAWN_PM)) { UtilPlayer.message(event.getPlayer(), F.main("Chat", "You must leave spawn before you can chat!")); event.setCancelled(true); @@ -635,15 +676,17 @@ public class HubManager extends MiniClientPlugin implements IChatMess Player player = event.getPlayer(); String playerName = player.getName(); - Rank rank = GetClients().Get(player).getRealOrDisguisedRank(); + PermissionGroup group = GetClients().Get(player).getRealOrDisguisedPrimaryGroup(); //Level Prefix - String levelStr = _achievementManager.getMineplexLevel(player, rank); + String levelStr = _achievementManager.getMineplexLevel(player); //Rank Prefix String rankStr = ""; - if (rank != Rank.ALL) - rankStr = rank.getTag(true, true) + " "; + if (!group.getDisplay(false, false, false, false).isEmpty()) + { + rankStr = group.getDisplay(true, true, true, false) + " "; + } //Party Chat if (event.getMessage().charAt(0) == '@') { @@ -676,7 +719,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess TextComponent playerNameText = new TextComponent(ChatColor.YELLOW + playerName); TextComponent component = new TextComponent(); - rankComponent.setHoverEvent(new HoverEvent(Action.SHOW_TEXT, new ComponentBuilder(rank.getColor() + rank.getTag(true, true) + ChatColor.WHITE + "\n" + rank.getDescription()).create())); + rankComponent.setHoverEvent(new HoverEvent(Action.SHOW_TEXT, new ComponentBuilder(group.getDisplay(true, true, true, true) + ChatColor.WHITE + "\n" + group.getDescription()).create())); component.setText(levelStr); component.addExtra(rankComponent); @@ -697,21 +740,23 @@ public class HubManager extends MiniClientPlugin implements IChatMess @Override public ChatFormat getChatFormat(Player player, String message) { - Rank rank = GetClients().Get(player).getRealOrDisguisedRank(); + PermissionGroup group = GetClients().Get(player).getRealOrDisguisedPrimaryGroup(); //Level Prefix - String levelStr = _achievementManager.getMineplexLevel(player, rank); + String levelStr = _achievementManager.getMineplexLevel(player); //Rank Prefix String rankStr = ""; - if (rank != Rank.ALL) - rankStr = rank.getTag(true, true) + " "; + if (!group.getDisplay(false, false, false, false).isEmpty()) + { + rankStr = group.getDisplay(true, true, true, false) + " "; + } TextComponent rankComponent = new TextComponent(rankStr); TextComponent playerNameText = new TextComponent(ChatColor.YELLOW + "%1$s"); TextComponent component = new TextComponent(); - rankComponent.setHoverEvent(new HoverEvent(Action.SHOW_TEXT, new ComponentBuilder(rank.getColor() + rank.getTag(true, true) + ChatColor.WHITE + "\n" + rank.getDescription()).create())); + rankComponent.setHoverEvent(new HoverEvent(Action.SHOW_TEXT, new ComponentBuilder(group.getDisplay(true, true, true, true) + ChatColor.WHITE + "\n" + group.getDescription()).create())); component.setText(levelStr); component.addExtra(rankComponent); @@ -923,9 +968,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess @EventHandler public void ignoreVelocity(PlayerVelocityEvent event) { - Player player = event.getPlayer(); - - if (_clientManager.Get(player).GetRank().has(Rank.TWITCH) && _preferences.get(player).isActive(Preference.IGNORE_VELOCITY) && !getJumpManager().isDoubleJumping(player)) + if (_clientManager.Get(event.getPlayer()).hasPermission(Preference.IGNORE_VELOCITY) && _preferences.get(event.getPlayer()).isActive(Preference.IGNORE_VELOCITY) && !getJumpManager().isDoubleJumping(event.getPlayer())) { event.setCancelled(true); } @@ -983,7 +1026,7 @@ public class HubManager extends MiniClientPlugin implements IChatMess @EventHandler public void clearGameMode(PlayerQuitEvent event) { - ArrayList creative = _creativeAdmin.remove(event.getPlayer().getName()); + List creative = _creativeAdmin.remove(event.getPlayer().getName()); if (creative == null) return; @@ -1046,4 +1089,4 @@ public class HubManager extends MiniClientPlugin implements IChatMess { return _questManager; } -} +} \ No newline at end of file