下面列出了org.bukkit.Material#WORKBENCH 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public InventoryView openWorkbench(Location location, boolean force) {
if (!force) {
Block block = location.getBlock();
if (block.getType() != Material.WORKBENCH) {
return null;
}
}
if (location == null) {
location = getLocation();
}
getHandle().displayGui(new BlockWorkbench.InterfaceCraftingTable(getHandle().world, new BlockPos(location.getBlockX(), location.getBlockY(), location.getBlockZ())));
if (force) {
getHandle().inventoryContainer.checkReachable = false;
}
return getHandle().inventoryContainer.getBukkitView();
}
public InventoryView openWorkbench(Location location, boolean force) {
if (!force) {
Block block = location.getBlock();
if (block.getType() != Material.WORKBENCH) {
return null;
}
}
if (location == null) {
location = getLocation();
}
getHandle().displayGUIWorkbench(location.getBlockX(), location.getBlockY(), location.getBlockZ());
if (force) {
getHandle().openContainer.checkReachable = false;
}
return getHandle().openContainer.getBukkitView();
}
@EventHandler(priority = EventPriority.MONITOR)
public void cloneCraftingWindow(final PlayerInteractEvent event) {
if(!AntiGrief.CraftProtect.enabled()) {
return;
}
if(!event.isCancelled() && event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getPlayer().getOpenInventory().getType() == InventoryType.CRAFTING /* nothing open */) {
Block block = event.getClickedBlock();
if(block != null && block.getType() == Material.WORKBENCH && !event.getPlayer().isSneaking()) {
// create the window ourself
event.setCancelled(true);
event.getPlayer().openWorkbench(null, true); // doesn't check reachable
}
}
}
@Override
public IconPackage getIconPackage()
{
return new IconPackage(new ItemStack(Material.WORKBENCH), Lang.CIVILIANLORE.toStringArray());
// return new IconPackage(new ItemStack(Material.WORKBENCH),
// new String[]{ aqua+"You are the backbone.",
// "",
// aqua+"Fuel all facets of the",
// aqua+"war machine with your",
// aqua+"set of wooden tools and",
// aqua+"prepare for battle!"
// });
}
public MainMenuWindow(Hawk hawk, Player player) {
super(hawk, player, 1, ChatColor.GOLD + "Hawk Anticheat");
HawkPlayer pp = hawk.getHawkPlayer(player);
/*elements[0] = new Element(Material.SAND, "dummy") {
@Override
public void doAction(Player p, Hawk hawk) {
Window testWindow = new TestWindow(hawk, p);
hawk.getGuiManager().sendWindow(p, testWindow);
}
};*/
elements[4] = new Element(Material.WORKBENCH, "Toggle Checks") {
@Override
public void doAction(Player p, Hawk hawk) {
Window checks = new ToggleChecksWindow(hawk, p);
hawk.getGuiManager().sendWindow(p, checks);
}
};
elements[5] = new Element(Material.PAPER, "Reload Configuration") {
@Override
public void doAction(Player p, Hawk hawk) {
Bukkit.dispatchCommand(p, "hawk reload");
}
};
ItemStack notify = new ItemStack(Material.INK_SACK);
notify.setDurability((short) (pp.canReceiveAlerts() ? 10 : 8));
ItemMeta notifyName = notify.getItemMeta();
notifyName.setDisplayName(pp.canReceiveAlerts() ? "Notifications: ON" : "Notifications: OFF");
notify.setItemMeta(notifyName);
elements[3] = new Element(notify) {
@Override
public void doAction(Player p, Hawk hawk) {
pp.setReceiveNotifications(!pp.canReceiveAlerts());
Window mainMenu = new MainMenuWindow(hawk, p);
hawk.getGuiManager().sendWindow(p, mainMenu);
}
};
elements[8] = new Element(Material.WOOD_DOOR, "Exit GUI") {
@Override
public void doAction(Player p, Hawk hawk) {
p.closeInventory();
}
};
prepareInventory();
}