package com.griefcraft.modules.admin; import com.griefcraft.lwc.LWC; import com.griefcraft.model.Protection; import com.griefcraft.scripting.JavaModule; import com.griefcraft.scripting.event.LWCCommandEvent; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.InventoryHolder; /** * This file is part of LWC (https://github.com/Hidendra/LWC) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ public class AdminView extends JavaModule { @Override public void onCommand(LWCCommandEvent event) { if (event.isCancelled()) { return; } if (!event.hasFlag("a", "admin")) { return; } LWC lwc = event.getLWC(); CommandSender sender = event.getSender(); String[] args = event.getArgs(); if (!args[0].equals("view")) { return; } // we have the right command event.setCancelled(true); if (!(sender instanceof Player)) { lwc.sendLocale(sender, "protection.admin.noconsole"); return; } Player player = (Player) sender; World world = player.getWorld(); if (args.length < 2) { lwc.sendSimpleUsage(sender, "/lwc admin view <id>"); return; } int protectionId = Integer.parseInt(args[1]); Protection protection = lwc.getPhysicalDatabase().loadProtection(protectionId); if (protection == null) { lwc.sendLocale(sender, "protection.admin.view.noexist"); return; } Block block = world.getBlockAt(protection.getX(), protection.getY(), protection.getZ()); if (!(block.getState() instanceof InventoryHolder)) { lwc.sendLocale(sender, "protection.admin.view.noinventory"); return; } player.openInventory(((InventoryHolder) block.getState()).getInventory()); lwc.sendLocale(sender, "protection.admin.view.viewing", "id", protectionId); } }