Add mission perms, add /libsdisguises json
This commit is contained in:
parent
dd3017b0f9
commit
a92916f112
@ -4,9 +4,11 @@ import me.libraryaddict.disguise.DisguiseConfig;
|
|||||||
import me.libraryaddict.disguise.LibsDisguises;
|
import me.libraryaddict.disguise.LibsDisguises;
|
||||||
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
|
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
|
||||||
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
||||||
|
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
|
||||||
import me.libraryaddict.disguise.utilities.LibsPremium;
|
import me.libraryaddict.disguise.utilities.LibsPremium;
|
||||||
import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
|
import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
|
||||||
import me.libraryaddict.disguise.utilities.parser.DisguisePermissions;
|
import me.libraryaddict.disguise.utilities.parser.DisguisePermissions;
|
||||||
|
import me.libraryaddict.disguise.utilities.parser.params.ParamInfoManager;
|
||||||
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
||||||
import net.md_5.bungee.api.chat.ClickEvent;
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
import net.md_5.bungee.api.chat.ComponentBuilder;
|
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.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.permissions.Permissible;
|
import org.bukkit.permissions.Permissible;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -128,6 +132,29 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter {
|
|||||||
} else {
|
} else {
|
||||||
sender.sendMessage(LibsMsg.NORMAL_PERM_CHECK_FAIL.get());
|
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")) {
|
} else if (args[0].equalsIgnoreCase("metainfo") || args[0].equalsIgnoreCase("meta")) {
|
||||||
if (!sender.hasPermission("libsdisguises.metainfo")) {
|
if (!sender.hasPermission("libsdisguises.metainfo")) {
|
||||||
sender.sendMessage(LibsMsg.NO_PERM.get());
|
sender.sendMessage(LibsMsg.NO_PERM.get());
|
||||||
@ -179,6 +206,37 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter {
|
|||||||
return true;
|
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
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) {
|
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) {
|
||||||
ArrayList<String> tabs = new ArrayList<>();
|
ArrayList<String> tabs = new ArrayList<>();
|
||||||
|
@ -113,7 +113,7 @@ public enum LibsMsg {
|
|||||||
PLEASE_WAIT(ChatColor.GRAY + "Please wait..."),
|
PLEASE_WAIT(ChatColor.GRAY + "Please wait..."),
|
||||||
INVALID_CLONE(ChatColor.DARK_RED + "Unknown option '%s' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' " +
|
INVALID_CLONE(ChatColor.DARK_RED + "Unknown option '%s' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' " +
|
||||||
"'DoSneak' 'DoSprint'"),
|
"'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?"),
|
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(ChatColor.RED + "Disguised %s as a %s!"),
|
||||||
LISTEN_ENTITY_ENTITY_DISG_ENTITY_FAIL(ChatColor.RED + "Failed to disguise %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(ChatColor.RED + "Cannot fight while disguised!"),
|
||||||
CANT_ATTACK_DISGUISED_RECENTLY(ChatColor.RED + "You were disguised recently! Can't attack yet!"),
|
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!"),
|
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;
|
private String string;
|
||||||
|
|
||||||
|
@ -98,6 +98,15 @@ permissions:
|
|||||||
libsdisguises.pve:
|
libsdisguises.pve:
|
||||||
description: Allows player to ignore pve restrictions.
|
description: Allows player to ignore pve restrictions.
|
||||||
default: false
|
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:
|
libsdisguises.pvp:
|
||||||
description: Allows player to ignore pvp restrictions.
|
description: Allows player to ignore pvp restrictions.
|
||||||
default: false
|
default: false
|
||||||
|
Loading…
Reference in New Issue
Block a user