Add mission perms, add /libsdisguises json
This commit is contained in:
		| @@ -4,9 +4,11 @@ import me.libraryaddict.disguise.DisguiseConfig; | ||||
| import me.libraryaddict.disguise.LibsDisguises; | ||||
| import me.libraryaddict.disguise.disguisetypes.DisguiseType; | ||||
| import me.libraryaddict.disguise.disguisetypes.MetaIndex; | ||||
| import me.libraryaddict.disguise.utilities.DisguiseUtilities; | ||||
| import me.libraryaddict.disguise.utilities.LibsPremium; | ||||
| import me.libraryaddict.disguise.utilities.parser.DisguisePerm; | ||||
| import me.libraryaddict.disguise.utilities.parser.DisguisePermissions; | ||||
| import me.libraryaddict.disguise.utilities.parser.params.ParamInfoManager; | ||||
| import me.libraryaddict.disguise.utilities.translations.LibsMsg; | ||||
| import net.md_5.bungee.api.chat.ClickEvent; | ||||
| import net.md_5.bungee.api.chat.ComponentBuilder; | ||||
| @@ -17,6 +19,8 @@ import org.bukkit.command.Command; | ||||
| import org.bukkit.command.CommandExecutor; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.command.TabCompleter; | ||||
| import org.bukkit.entity.Player; | ||||
| import org.bukkit.inventory.ItemStack; | ||||
| import org.bukkit.permissions.Permissible; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| @@ -128,6 +132,29 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter { | ||||
|                 } else { | ||||
|                     sender.sendMessage(LibsMsg.NORMAL_PERM_CHECK_FAIL.get()); | ||||
|                 } | ||||
|             } else if (args[0].equalsIgnoreCase("json") || args[0].equalsIgnoreCase("gson") || | ||||
|                     args[0].equalsIgnoreCase("item") || args[0].equalsIgnoreCase("parse") || | ||||
|                     args[0].equalsIgnoreCase("tostring")) { | ||||
|                 if (!sender.hasPermission("libsdisguises.json")) { | ||||
|                     sender.sendMessage(LibsMsg.NO_PERM.get()); | ||||
|                     return true; | ||||
|                 } | ||||
|  | ||||
|                 if (!(sender instanceof Player)) { | ||||
|                     sender.sendMessage(LibsMsg.NO_CONSOLE.get()); | ||||
|                     return true; | ||||
|                 } | ||||
|  | ||||
|                 ItemStack item = ((Player) sender).getInventory().getItemInMainHand(); | ||||
|  | ||||
|                 String gson = DisguiseUtilities.getGson().toJson(item); | ||||
|                 String simple = ParamInfoManager.toString(item); | ||||
|  | ||||
|                 sendMessage(sender, LibsMsg.ITEM_SERIALIZED, gson); | ||||
|  | ||||
|                 if (!gson.equals(simple)) { | ||||
|                     sendMessage(sender, LibsMsg.ITEM_SIMPLE_STRING, simple); | ||||
|                 } | ||||
|             } else if (args[0].equalsIgnoreCase("metainfo") || args[0].equalsIgnoreCase("meta")) { | ||||
|                 if (!sender.hasPermission("libsdisguises.metainfo")) { | ||||
|                     sender.sendMessage(LibsMsg.NO_PERM.get()); | ||||
| @@ -179,6 +206,37 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     private void sendMessage(CommandSender sender, LibsMsg prefix, String string) { | ||||
|         int start = 0; | ||||
|         int msg = 1; | ||||
|  | ||||
|         ComponentBuilder builder = new ComponentBuilder("").appendLegacy(prefix.get()); | ||||
|  | ||||
|         while (start < string.length()) { | ||||
|             int end = Math.min(256, string.length() - start); | ||||
|  | ||||
|             String sub = string.substring(start, start + end); | ||||
|  | ||||
|             builder.append(" "); | ||||
|  | ||||
|             if (string.length() <= 256) { | ||||
|                 builder.appendLegacy(LibsMsg.CLICK_TO_COPY_DATA.get()); | ||||
|             } else { | ||||
|                 builder.reset(); | ||||
|                 builder.appendLegacy(LibsMsg.CLICK_COPY.get(msg)); | ||||
|             } | ||||
|  | ||||
|             start += end; | ||||
|  | ||||
|             builder.event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, sub)); | ||||
|             builder.event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, | ||||
|                     new ComponentBuilder(LibsMsg.CLICK_TO_COPY_HOVER.get() + " " + msg).create())); | ||||
|             msg += 1; | ||||
|         } | ||||
|  | ||||
|         sender.spigot().sendMessage(builder.create()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { | ||||
|         ArrayList<String> tabs = new ArrayList<>(); | ||||
|   | ||||
| @@ -113,7 +113,7 @@ public enum LibsMsg { | ||||
|     PLEASE_WAIT(ChatColor.GRAY + "Please wait..."), | ||||
|     INVALID_CLONE(ChatColor.DARK_RED + "Unknown option '%s' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' " + | ||||
|             "'DoSneak' 'DoSprint'"), | ||||
|     LIBS_COMMAND_WRONG_ARG(ChatColor.RED + "[LibsDisguises] Did you mean 'reload', 'permtest' or 'metainfo'?"), | ||||
|     LIBS_COMMAND_WRONG_ARG(ChatColor.RED + "[LibsDisguises] Did you mean 'reload', 'permtest', 'json' or 'metainfo'?"), | ||||
|     LIMITED_RADIUS(ChatColor.RED + "Limited radius to %s! Don't want to make too much lag right?"), | ||||
|     LISTEN_ENTITY_ENTITY_DISG_ENTITY(ChatColor.RED + "Disguised %s as a %s!"), | ||||
|     LISTEN_ENTITY_ENTITY_DISG_ENTITY_FAIL(ChatColor.RED + "Failed to disguise %s as a %s!"), | ||||
| @@ -248,7 +248,9 @@ public enum LibsMsg { | ||||
|     CANT_ATTACK_DISGUISED(ChatColor.RED + "Cannot fight while disguised!"), | ||||
|     CANT_ATTACK_DISGUISED_RECENTLY(ChatColor.RED + "You were disguised recently! Can't attack yet!"), | ||||
|     SWITCH_WORLD_DISGUISE_REMOVED(ChatColor.RED + "Disguise removed as you've switched worlds!"), | ||||
|     ACTION_BAR_MESSAGE(ChatColor.GOLD + "Currently disguised as %s"); | ||||
|     ACTION_BAR_MESSAGE(ChatColor.GOLD + "Currently disguised as %s"), | ||||
|     ITEM_SERIALIZED(ChatColor.GOLD + "Serialized, click to copy: "), | ||||
|     ITEM_SIMPLE_STRING(ChatColor.GOLD + "Simple, click to copy: "); | ||||
|  | ||||
|     private String string; | ||||
|  | ||||
|   | ||||
| @@ -98,6 +98,15 @@ permissions: | ||||
|     libsdisguises.pve: | ||||
|       description: Allows player to ignore pve restrictions. | ||||
|       default: false | ||||
|     libsdisguises.permtest: | ||||
|       description: Allows player to test permissions | ||||
|       default: false | ||||
|     libsdisguises.metainfo: | ||||
|       description: Allows player to get meta info | ||||
|       default: false | ||||
|     libsdisguises.json: | ||||
|       description: Allows player to parse held item to json | ||||
|       default: true | ||||
|     libsdisguises.pvp: | ||||
|       description: Allows player to ignore pvp restrictions. | ||||
|       default: false | ||||
|   | ||||
		Reference in New Issue
	
	Block a user