@Override public void onCommand(LWCCommandEvent event) { if (event.isCancelled()) { return; } if (!event.hasFlag("c", "create")) { return; } LWC lwc = event.getLWC(); CommandSender sender = event.getSender(); String[] args = event.getArgs(); if (!(sender instanceof Player)) { return; } if (args.length == 0) { lwc.sendLocale(sender, "help.creation"); return; } LWCPlayer player = lwc.wrapPlayer(sender); String full = StringUtil.join(args, 0).trim(); String type = args[0].toLowerCase(); String data = StringUtil.join(args, 1); event.setCancelled(true); /** * Allow individual enforcements with e.g lwc.create.private, or just the umbrella lwc.create * for all */ if (!lwc.hasPermission(sender, "lwc.create." + type, "lwc.create", "lwc.protect")) { lwc.sendLocale(sender, "protection.accessdenied"); return; } try { switch (Protection.Type.matchType(type)) { case PASSWORD: if (args.length < 2) { lwc.sendSimpleUsage(player, "/lwc -c password <Password>"); return; } String hiddenPass = StringUtil.transform(data, '*'); lwc.sendLocale(player, "protection.create.password", "password", hiddenPass); break; } } catch (IllegalArgumentException e) { // Invalid protection type! lwc.sendLocale(player, "help.creation"); return; } Action action = new Action(); action.setName("create"); action.setPlayer(player); action.setData(full); player.removeAllActions(); player.addAction(action); lwc.sendLocale( player, "protection.create.finalize", "type", lwc.getPlugin().getMessageParser().parseMessage(type)); }