diff --git a/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java b/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java index 69a8150c..589ac95f 100644 --- a/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java +++ b/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java @@ -994,7 +994,7 @@ public enum CMIMaterial { //1.15 BEEHIVE("Beehive"), BEE_NEST("Bee Nest"), - BEE_SPAWN_EGG("Bee Spawn Egg"), + BEE_SPAWN_EGG(383, null, 15434, "Bee Spawn Egg"), HONEYCOMB("Honeycomb"), HONEYCOMB_BLOCK("Honeycomb Block"), HONEY_BLOCK("Honey Block"), diff --git a/src/main/java/com/gamingmesh/jobs/commands/list/top.java b/src/main/java/com/gamingmesh/jobs/commands/list/top.java index 0006fe5b..6bd13512 100644 --- a/src/main/java/com/gamingmesh/jobs/commands/list/top.java +++ b/src/main/java/com/gamingmesh/jobs/commands/list/top.java @@ -72,17 +72,15 @@ public class top implements Cmd { continue; if (pi.isBreak()) break; - String PlayerName = One.getPlayerName() != null ? One.getPlayerName() : "Unknown"; player.sendMessage(Jobs.getLanguage().getMessage("command.top.output.list", "%number%", pi.getPositionForOutput(), - "%playername%", PlayerName, + "%playername%", One.getPlayerName(), "%level%", One.getLevel(), "%exp%", One.getExp())); } Jobs.getInstance().ShowPagination(sender, pi, "jobs top " + job.getName()); } else { - List ls = new ArrayList<>(); for (TopList one : FullList) { @@ -90,8 +88,9 @@ public class top implements Cmd { continue; if (pi.isBreak()) break; - String playername = one.getPlayerName() != null ? one.getPlayerName() : "Unknown"; - ls.add(Jobs.getLanguage().getMessage("scoreboard.line", "%number%", pi.getPositionForOutput(), "%playername%", playername, "%level%", one.getLevel())); + + ls.add(Jobs.getLanguage().getMessage("scoreboard.line", "%number%", pi.getPositionForOutput(), + "%playername%", one.getPlayerName(), "%level%", one.getLevel())); } plugin.getCMIScoreboardManager().setScoreBoard(player, Jobs.getLanguage().getMessage("scoreboard.topline", "%jobname%", job.getName()), ls); diff --git a/src/main/java/com/gamingmesh/jobs/commands/list/transfer.java b/src/main/java/com/gamingmesh/jobs/commands/list/transfer.java index cedb1e78..186d50d5 100644 --- a/src/main/java/com/gamingmesh/jobs/commands/list/transfer.java +++ b/src/main/java/com/gamingmesh/jobs/commands/list/transfer.java @@ -1,4 +1,3 @@ - package com.gamingmesh.jobs.commands.list; import org.bukkit.command.CommandSender; @@ -25,16 +24,19 @@ public class transfer implements Cmd { sender.sendMessage(Jobs.getLanguage().getMessage("general.error.noinfoByPlayer", "%playername%", args[0])); return true; } + Job oldjob = Jobs.getJob(args[1]); - Job newjob = Jobs.getJob(args[2]); if (oldjob == null) { sender.sendMessage(Jobs.getLanguage().getMessage("general.error.job")); return true; } + + Job newjob = Jobs.getJob(args[2]); if (newjob == null) { sender.sendMessage(Jobs.getLanguage().getMessage("general.error.job")); return true; } + try { if (jPlayer.isInJob(oldjob) && !jPlayer.isInJob(newjob)) { Jobs.getPlayerManager().transferJob(jPlayer, oldjob, newjob); @@ -49,9 +51,10 @@ public class transfer implements Cmd { sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.success")); } - } catch (Throwable e) { + } catch (Exception e) { sender.sendMessage(Jobs.getLanguage().getMessage("general.admin.error")); } + return true; } } diff --git a/src/main/java/com/gamingmesh/jobs/config/GeneralConfigManager.java b/src/main/java/com/gamingmesh/jobs/config/GeneralConfigManager.java index bcc7ed0b..d551af52 100644 --- a/src/main/java/com/gamingmesh/jobs/config/GeneralConfigManager.java +++ b/src/main/java/com/gamingmesh/jobs/config/GeneralConfigManager.java @@ -124,6 +124,7 @@ public class GeneralConfigManager { public ItemStack guiBackButton; public ItemStack guiFiller; + public boolean FilterHiddenPlayerFromTabComplete; public int JobsTopAmount, PlaceholdersPage; public Integer levelLossPercentageFromMax, levelLossPercentage, SoundLevelupVolume, SoundLevelupPitch, SoundTitleChangeVolume, @@ -1012,10 +1013,16 @@ public class GeneralConfigManager { c.addComment("JobsGUI.SkipAmount", "Defines by how many slots we need to skip after group"); JobsGUISkipAmount = c.get("JobsGUI.SkipAmount", 2); - c.addComment("PageRow.JobsTop.AmountToShow", "Defines amount of players to be shown in one page for /jobs top & /jobs gtop"); - JobsTopAmount = c.get("PageRow.JobsTop.AmountToShow", 15); - c.addComment("PageRow.Placeholders.AmountToShow", "Defines amount of placeholders to be shown in one page for /jobs placeholders"); - PlaceholdersPage = c.get("PageRow.Placeholders.AmountToShow", 10); + c.addComment("Commands.FilterHiddenPlayersInTabComplete", "Do you want to filter the hidden player names from tab-complete?"); + FilterHiddenPlayerFromTabComplete = c.get("Commands.FilterHiddenPlayersInTabComplete", false); + c.addComment("Commands.PageRow.JobsTop.AmountToShow", "Defines amount of players to be shown in one page for /jobs top & /jobs gtop"); + JobsTopAmount = c.get("Commands.PageRow.JobsTop.AmountToShow", 15); + c.addComment("Commands.PageRow.Placeholders.AmountToShow", "Defines amount of placeholders to be shown in one page for /jobs placeholders"); + PlaceholdersPage = c.get("Commands.PageRow.Placeholders.AmountToShow", 10); + c.addComment("Commands.JobsLeave.EnableConfirmation", "Allows to confirm the /jobs leave and leaveall commands, to confirm the leave."); + EnableConfirmation = c.get("Commands.JobsLeave.EnableConfirmation", false); + c.addComment("Commands.JobsLeave.ConfirmExpiryTime", "Specify the confirm expiry time.", "Time in seconds."); + ConfirmExpiryTime = c.get("Commands.JobsLeave.ConfirmExpiryTime", 10); CMIMaterial tmat = null; tmat = CMIMaterial.get(c.get("JobsGUI.BackButton.Material", "JACK_O_LANTERN")); @@ -1027,11 +1034,6 @@ public class GeneralConfigManager { // c.addComment("Schedule.Boost.Enable", "Do you want to enable scheduler for global boost?"); // useGlobalBoostScheduler = c.get("Schedule.Boost.Enable", false); - c.addComment("JobsLeave.EnableConfirmation", "Allows to confirm the /jobs leave and leaveall commands, to confirm the leave."); - EnableConfirmation = c.get("JobsLeave.EnableConfirmation", false); - c.addComment("JobsLeave.ConfirmExpiryTime", "Specify the confirm expiry time.", "Time in seconds."); - ConfirmExpiryTime = c.get("JobsLeave.ConfirmExpiryTime", 10); - c.save(); } diff --git a/src/main/java/com/gamingmesh/jobs/stuff/TabComplete.java b/src/main/java/com/gamingmesh/jobs/stuff/TabComplete.java index d3f247d7..3067c506 100644 --- a/src/main/java/com/gamingmesh/jobs/stuff/TabComplete.java +++ b/src/main/java/com/gamingmesh/jobs/stuff/TabComplete.java @@ -10,6 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; +import org.bukkit.metadata.MetadataValue; import org.bukkit.util.StringUtil; import com.gamingmesh.jobs.ItemBoostManager; @@ -25,7 +26,6 @@ public class TabComplete implements TabCompleter { @Override public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - List completionList = new ArrayList<>(); if (args.length == 1) { @@ -65,13 +65,23 @@ public class TabComplete implements TabCompleter { for (String ar : t2) { switch (ar) { case "[jobname]": - List Jobsai = Jobs.getJobs(); - for (Job one : Jobsai) { + case "[newjob]": + for (Job one : Jobs.getJobs()) { temp.add(one.getName()); } break; case "[playername]": - for (Player player : Bukkit.getOnlinePlayers()) { + pl: for (Player player : Bukkit.getOnlinePlayers()) { + // ignore hidden players + if (Jobs.getGCManager().FilterHiddenPlayerFromTabComplete && player.hasMetadata("vanished")) { + // TODO add essentials & cmi support + for (MetadataValue meta : player.getMetadata("vanished")) { + if (meta.asBoolean()) { + continue pl; + } + } + } + temp.add(player.getName()); } break; @@ -113,13 +123,6 @@ public class TabComplete implements TabCompleter { } } break; - case "[newjob]": - if (sender instanceof Player) { - for (Job job : Jobs.getJobs()) { - temp.add(job.getName()); - } - } - break; default: temp.add(ar); break;