use of org.bukkit.inventory.Inventory in project Essentials by drtshock.
the class Commandinvsee method run.
//This method has a hidden param, which if given will display the equip slots. #easteregg
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception {
if (args.length < 1) {
throw new NotEnoughArgumentsException();
}
final User invUser = getPlayer(server, user, args, 0);
Inventory inv;
if (args.length > 1 && user.isAuthorized("essentials.invsee.equip")) {
inv = server.createInventory(invUser.getBase(), 9, "Equipped");
inv.setContents(invUser.getBase().getInventory().getArmorContents());
} else {
inv = invUser.getBase().getInventory();
}
user.getBase().closeInventory();
user.getBase().openInventory(inv);
user.setInvSee(true);
}
use of org.bukkit.inventory.Inventory in project SpaciousLib by anhcraft.
the class InteractItemListener method interact.
@EventHandler(priority = EventPriority.MONITOR)
public void interact(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
Inventory inventory = CompatibilityInventoryClickEvent.getInventory(event);
ClickType type = event.getClick();
if (inventory != null && data.containsKey(inventory)) {
event.setCancelled(true);
event.setResult(Event.Result.DENY);
ItemStack item = event.getCurrentItem();
if (item != null && !item.getType().equals(Material.AIR) && data.get(inventory).containsKey(item)) {
LinkedHashMap<ItemStack, InteractItemRunnable> items = data.get(inventory);
items.get(item).run(player, item, type, event.getSlot());
data.put(inventory, items);
}
}
}
use of org.bukkit.inventory.Inventory in project BKCommonLib by bergerhealer.
the class RecipeTest method testCrafting.
@Test
public void testCrafting() {
Inventory testInventory = new InventoryBaseImpl(64);
CraftRecipe recipe = RecipeUtil.getCraftingRequirements(Material.DIODE, 0)[0];
// Add enough resources to craft 2 diodes, and a little more but not enough for a third
// Also add some garbage items
testInventory.addItem(new ItemStack(Material.REDSTONE, 64));
testInventory.addItem(new ItemStack(Material.COBBLESTONE, 64));
testInventory.addItem(new ItemStack(Material.STONE, 8));
testInventory.addItem(new ItemStack(Material.REDSTONE_TORCH_ON, 5));
testInventory.addItem(new ItemStack(Material.WOOD, 12));
assertTrue(recipe.craft(testInventory));
assertTrue(recipe.craft(testInventory));
assertFalse(recipe.craft(testInventory));
// Verify the items in the inventory
assertEquals(testInventory.getItem(0), new ItemStack(Material.REDSTONE, 62));
assertEquals(testInventory.getItem(1), new ItemStack(Material.COBBLESTONE, 64));
assertEquals(testInventory.getItem(2), new ItemStack(Material.STONE, 2));
assertEquals(testInventory.getItem(3), new ItemStack(Material.REDSTONE_TORCH_ON, 1));
assertEquals(testInventory.getItem(4), new ItemStack(Material.WOOD, 12));
assertEquals(testInventory.getItem(5), new ItemStack(Material.DIODE, 2));
}
use of org.bukkit.inventory.Inventory in project acidisland by tastybento.
the class BiomesPanel method getBiomePanel.
/**
* Returns a customized panel of available Biomes for the player
*
* @param player
* @return custom Inventory object
*/
public Inventory getBiomePanel(Player player) {
// Go through the available biomes and check permission
int slot = 0;
List<BiomeItem> items = new ArrayList<BiomeItem>();
for (String biomeName : plugin.getConfig().getConfigurationSection("biomes").getKeys(false)) {
// Check the biome is actually real
try {
Biome biome = Biome.valueOf(biomeName);
// Check permission
String permission = plugin.getConfig().getString("biomes." + biomeName + ".permission", "");
if (permission.isEmpty() || VaultHelper.permission.has(player, permission)) {
// Build inventory item
// Get icon
String icon = plugin.getConfig().getString("biomes." + biomeName + ".icon", "SAPLING");
Material material = null;
try {
if (StringUtils.isNumeric(icon)) {
material = Material.getMaterial(Integer.parseInt(icon));
} else {
material = Material.valueOf(icon.toUpperCase());
}
} catch (Exception e) {
plugin.getLogger().warning("Error parsing biome icon value " + icon + ". Using default SAPLING.");
material = Material.SAPLING;
}
// Get cost
double cost = plugin.getConfig().getDouble("biomes." + biomeName + ".cost", Settings.biomeCost);
// Get friendly name
String name = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("biomes." + biomeName + ".friendlyname", Util.prettifyText(biomeName)));
// Get description
String description = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("biomes." + biomeName + ".description", ""));
// Get confirmation or not
boolean confirm = plugin.getConfig().getBoolean("biomes." + biomeName + ".confirm", false);
// Add item to list
// plugin.getLogger().info("DEBUG: " + description + name +
// confirm);
BiomeItem item = new BiomeItem(material, slot++, cost, description, name, confirm, biome);
// Add to item list
items.add(item);
}
} catch (Exception e) {
e.printStackTrace();
plugin.getLogger().severe("Could not recognize " + biomeName + " as valid Biome! Skipping...");
plugin.getLogger().severe("For V1.9, some biome names do not exist anymore. Change config.yml to the latest.");
}
}
// Now create the inventory panel
if (items.size() > 0) {
// Save the items for later retrieval when the player clicks on them
biomeItems.put(player.getUniqueId(), items);
// Make sure size is a multiple of 9
int size = items.size() + 8;
size -= (size % 9);
Inventory newPanel = Bukkit.createInventory(null, size, plugin.myLocale().biomePanelTitle);
// Fill the inventory and return
for (BiomeItem i : items) {
newPanel.addItem(i.getItem());
}
return newPanel;
} else {
Util.sendMessage(player, ChatColor.RED + plugin.myLocale(player.getUniqueId()).errorCommandNotReady);
plugin.getLogger().warning("There are no biomes in config.yml so /island biomes will not work!");
}
return null;
}
use of org.bukkit.inventory.Inventory in project acidisland by tastybento.
the class Schematic method pasteSchematic.
/*
* This function pastes using World Edit - problem is that because it reads a file, it's slow.
@SuppressWarnings("deprecation")
*/
/*
*
public void pasteSchematic(final Location loc, final Player player, boolean teleport) {
plugin.getLogger().info("WE Pasting");
com.sk89q.worldedit.Vector WEorigin = new com.sk89q.worldedit.Vector(loc.getBlockX(),loc.getBlockY(),loc.getBlockZ());
EditSession es = new EditSession(new BukkitWorld(loc.getWorld()), 999999999);
try {
CuboidClipboard cc = CuboidClipboard.loadSchematic(file);
cc.paste(es, WEorigin, false);
cc.pasteEntities(WEorigin);
} catch (Exception e) {
e.printStackTrace();
}
if (teleport) {
World world = loc.getWorld();
player.teleport(world.getSpawnLocation());
plugin.getServer().getScheduler().runTaskLater(plugin, new Runnable() {
@Override
public void run() {
plugin.getGrid().homeTeleport(player);
}}, 10L);
}
}
*/
/**
* This method pastes a schematic.
* @param loc - where to paste it
* @param player - who for
* @param teleport - should the player be teleported after pasting?
* @param reason - why this was pasted
*/
public void pasteSchematic(final Location loc, final Player player, boolean teleport, final PasteReason reason) {
// If this is not a file schematic, paste the default island
if (this.file == null) {
if (Settings.GAMETYPE == GameType.ACIDISLAND) {
generateIslandBlocks(loc, player, reason);
} else {
loc.getBlock().setType(Material.BEDROCK);
ASkyBlock.getPlugin().getLogger().severe("Missing schematic - using bedrock block only");
}
return;
}
World world = loc.getWorld();
Location blockLoc = new Location(world, loc.getX(), loc.getY(), loc.getZ());
// Location blockLoc = new Location(world, loc.getX(), Settings.island_level, loc.getZ());
blockLoc.subtract(bedrock);
// plugin.getLogger().info("DEBUG: islandBlock size (paste) = " + islandBlocks.size());
for (IslandBlock b : islandBlocks) {
b.paste(nms, blockLoc, this.usePhysics, biome);
}
// Bukkit.getLogger().info("Block loc = " + blockLoc);
if (pasteEntities) {
for (EntityObject ent : entitiesList) {
// If TileX/Y/Z id defined, we have to use it (for Item Frame & Painting)
if (ent.getTileX() != null && ent.getTileY() != null && ent.getTileZ() != null) {
ent.setLocation(new BlockVector(ent.getTileX(), ent.getTileY(), ent.getTileZ()));
}
Location entitySpot = ent.getLocation().toLocation(blockLoc.getWorld()).add(blockLoc.toVector());
entitySpot.setPitch(ent.getPitch());
entitySpot.setYaw(ent.getYaw());
// Bukkit.getLogger().info("DEBUG: Entity type = " + ent.getType());
if (ent.getType() == EntityType.PAINTING) {
// Bukkit.getLogger().info("DEBUG: spawning " + ent.getType().toString() + " at " + entitySpot);
try {
Painting painting = blockLoc.getWorld().spawn(entitySpot, Painting.class);
if (painting != null) {
if (paintingList.containsKey(ent.getMotive())) {
// painting.setArt(Art.GRAHAM);
painting.setArt(paintingList.get(ent.getMotive()), true);
} else {
// Set default
painting.setArt(Art.ALBAN, true);
}
// http://minecraft.gamepedia.com/Painting#Data_values
if (facingList.containsKey(ent.getFacing())) {
painting.setFacingDirection(facingList.get(ent.getFacing()), true);
} else {
// set default direction
painting.setFacingDirection(BlockFace.NORTH, true);
}
// Bukkit.getLogger().info("DEBUG: Painting setFacingDirection: " + painting.getLocation().toString() + "; facing: " + painting.getFacing() + "; ent facing: " + ent.getFacing());
// Bukkit.getLogger().info("DEBUG: Painting setArt: " + painting.getLocation().toString() + "; art: " + painting.getArt() + "; ent motive: " + ent.getMotive());
}
} catch (IllegalArgumentException e) {
// plugin.getLogger().warning("Cannot paste painting from schematic");
}
} else if (ent.getType() == EntityType.ITEM_FRAME) {
// Bukkit.getLogger().info("DEBUG: spawning itemframe at" + entitySpot.toString());
// Bukkit.getLogger().info("DEBUG: tileX: " + ent.getTileX() + ", tileY: " + ent.getTileY() + ", tileZ: " + ent.getTileZ());
ItemFrame itemFrame = (ItemFrame) blockLoc.getWorld().spawnEntity(entitySpot, EntityType.ITEM_FRAME);
if (itemFrame != null) {
// Need to improve this shity fix ...
Material material = Material.matchMaterial(ent.getId().substring(10).toUpperCase());
;
if (material == null && IslandBlock.WEtoM.containsKey(ent.getId().substring(10).toUpperCase())) {
material = IslandBlock.WEtoM.get(ent.getId().substring(10).toUpperCase());
}
ItemStack item;
if (material != null) {
// Bukkit.getLogger().info("DEBUG: id: " + ent.getId() + ", material match: " + material.toString());
if (ent.getCount() != null) {
if (ent.getDamage() != null) {
item = new ItemStack(material, ent.getCount(), ent.getDamage());
} else {
item = new ItemStack(material, ent.getCount(), (short) 0);
}
} else {
if (ent.getDamage() != null) {
item = new ItemStack(material, 1, ent.getDamage());
} else {
item = new ItemStack(material, 1, (short) 0);
}
}
} else {
// Bukkit.getLogger().info("DEBUG: material can't be found for: " + ent.getId() + " (" + ent.getId().substring(10).toUpperCase() + ")");
// Set to default content
item = new ItemStack(Material.STONE, 0, (short) 4);
}
ItemMeta itemMeta = item.getItemMeta();
// TODO: Implement methods to get enchantement, names, lore etc.
item.setItemMeta(itemMeta);
itemFrame.setItem(item);
if (facingList.containsKey(ent.getFacing())) {
itemFrame.setFacingDirection(facingList.get(ent.getFacing()), true);
} else {
// set default direction
itemFrame.setFacingDirection(BlockFace.NORTH, true);
}
// TODO: Implements code to handle the rotation of the item in the itemframe
if (rotationList.containsKey(ent.getItemRotation())) {
itemFrame.setRotation(rotationList.get(ent.getItemRotation()));
} else {
// Set default direction
itemFrame.setRotation(Rotation.NONE);
}
}
} else {
// Bukkit.getLogger().info("Spawning " + ent.getType().toString() + " at " + entitySpot);
Entity spawned = blockLoc.getWorld().spawnEntity(entitySpot, ent.getType());
if (spawned != null) {
spawned.setVelocity(ent.getMotion());
if (ent.getType() == EntityType.SHEEP) {
Sheep sheep = (Sheep) spawned;
if (ent.isSheared()) {
sheep.setSheared(true);
}
DyeColor[] set = DyeColor.values();
sheep.setColor(set[ent.getColor()]);
sheep.setAge(ent.getAge());
} else if (ent.getType() == EntityType.HORSE) {
Horse horse = (Horse) spawned;
Horse.Color[] set = Horse.Color.values();
horse.setColor(set[ent.getColor()]);
horse.setAge(ent.getAge());
horse.setCarryingChest(ent.isCarryingChest());
} else if (ent.getType() == EntityType.VILLAGER) {
Villager villager = (Villager) spawned;
villager.setAge(ent.getAge());
Profession[] proffs = Profession.values();
villager.setProfession(proffs[ent.getProfession()]);
} else if (!Bukkit.getServer().getVersion().contains("(MC: 1.7") && ent.getType() == EntityType.RABBIT) {
Rabbit rabbit = (Rabbit) spawned;
Rabbit.Type[] set = Rabbit.Type.values();
rabbit.setRabbitType(set[ent.getRabbitType()]);
rabbit.setAge(ent.getAge());
} else if (ent.getType() == EntityType.OCELOT) {
Ocelot cat = (Ocelot) spawned;
if (ent.isOwned()) {
cat.setTamed(true);
cat.setOwner(player);
}
Ocelot.Type[] set = Ocelot.Type.values();
cat.setCatType(set[ent.getCatType()]);
cat.setAge(ent.getAge());
cat.setSitting(ent.isSitting());
} else if (ent.getType() == EntityType.WOLF) {
Wolf wolf = (Wolf) spawned;
if (ent.isOwned()) {
wolf.setTamed(true);
wolf.setOwner(player);
}
wolf.setAge(ent.getAge());
wolf.setSitting(ent.isSitting());
DyeColor[] color = DyeColor.values();
wolf.setCollarColor(color[ent.getCollarColor()]);
}
}
}
}
}
// Find the grass spot
final Location grass;
if (topGrass != null) {
Location gr = topGrass.clone().toLocation(loc.getWorld()).subtract(bedrock);
gr.add(loc.toVector());
// Center of block and a bit up so the animal drops a bit
gr.add(new Vector(0.5D, 1.1D, 0.5D));
grass = gr;
} else {
grass = null;
}
// Bukkit.getLogger().info("DEBUG cow location " + grass);
Block blockToChange = null;
// Place a helpful sign in front of player
if (welcomeSign != null) {
// Bukkit.getLogger().info("DEBUG welcome sign schematic relative is:"
// + welcomeSign.toString());
Vector ws = welcomeSign.clone().subtract(bedrock);
// Bukkit.getLogger().info("DEBUG welcome sign relative to bedrock is:"
// + welcomeSign.toString());
ws.add(loc.toVector());
// Bukkit.getLogger().info("DEBUG welcome sign actual position is:"
// + welcomeSign.toString());
blockToChange = ws.toLocation(world).getBlock();
BlockState signState = blockToChange.getState();
if (signState instanceof Sign) {
Sign sign = (Sign) signState;
if (sign.getLine(0).isEmpty()) {
sign.setLine(0, plugin.myLocale(player.getUniqueId()).signLine1.replace("[player]", player.getName()));
}
if (sign.getLine(1).isEmpty()) {
sign.setLine(1, plugin.myLocale(player.getUniqueId()).signLine2.replace("[player]", player.getName()));
}
if (sign.getLine(2).isEmpty()) {
sign.setLine(2, plugin.myLocale(player.getUniqueId()).signLine3.replace("[player]", player.getName()));
}
if (sign.getLine(3).isEmpty()) {
sign.setLine(3, plugin.myLocale(player.getUniqueId()).signLine4.replace("[player]", player.getName()));
}
// BlockFace direction = ((org.bukkit.material.Sign)
// sign.getData()).getFacing();
// ((org.bukkit.material.Sign) sign.getData()).setFacingDirection(BlockFace.NORTH);
sign.update(true, false);
}
}
if (chest != null) {
Vector ch = chest.clone().subtract(bedrock);
ch.add(loc.toVector());
// Place the chest - no need to use the safe spawn function because we
// know what this island looks like
blockToChange = ch.toLocation(world).getBlock();
// Settings.chestItems.length);
if (useDefaultChest) {
// Fill the chest
if (blockToChange.getType() == Material.CHEST) {
final Chest islandChest = (Chest) blockToChange.getState();
DoubleChest doubleChest = null;
InventoryHolder iH = islandChest.getInventory().getHolder();
if (iH instanceof DoubleChest) {
// Bukkit.getLogger().info("DEBUG: double chest");
doubleChest = (DoubleChest) iH;
}
if (doubleChest != null) {
Inventory inventory = doubleChest.getInventory();
inventory.clear();
inventory.setContents(defaultChestItems);
} else {
Inventory inventory = islandChest.getInventory();
inventory.clear();
inventory.setContents(defaultChestItems);
}
}
}
}
if (teleport) {
plugin.getPlayers().setInTeleport(player.getUniqueId(), true);
// plugin.getLogger().info("DEBUG: view dist = " + plugin.getServer().getViewDistance());
if (player.getWorld().equals(world)) {
// plugin.getLogger().info("DEBUG: same world");
int distSq = (int) ((player.getLocation().distanceSquared(loc) - ((double) Settings.islandDistance * Settings.islandDistance) / 16));
// plugin.getLogger().info("DEBUG: distsq = " + distSq);
if (plugin.getServer().getViewDistance() * plugin.getServer().getViewDistance() < distSq) {
// plugin.getLogger().info("DEBUG: teleporting");
player.teleport(world.getSpawnLocation());
}
}
plugin.getServer().getScheduler().runTaskLater(plugin, new Runnable() {
@Override
public void run() {
plugin.getGrid().homeTeleport(player);
plugin.getPlayers().setInTeleport(player.getUniqueId(), false);
// Reset any inventory, etc. This is done AFTER the teleport because other plugins may switch out inventory based on world
plugin.resetPlayer(player);
// Reset money if required
if (Settings.resetMoney) {
resetMoney(player);
}
// Show fancy titles!
if (!Bukkit.getServer().getVersion().contains("(MC: 1.7")) {
if (!plugin.myLocale(player.getUniqueId()).islandSubTitle.isEmpty()) {
// plugin.getLogger().info("DEBUG: title " + player.getName() + " subtitle {\"text\":\"" + plugin.myLocale(player.getUniqueId()).islandSubTitle + "\", \"color\":\"" + plugin.myLocale(player.getUniqueId()).islandSubTitleColor + "\"}");
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "minecraft:title " + player.getName() + " subtitle {\"text\":\"" + plugin.myLocale(player.getUniqueId()).islandSubTitle.replace("[player]", player.getName()) + "\", \"color\":\"" + plugin.myLocale(player.getUniqueId()).islandSubTitleColor + "\"}");
}
if (!plugin.myLocale(player.getUniqueId()).islandTitle.isEmpty()) {
// plugin.getLogger().info("DEBUG: title " + player.getName() + " title {\"text\":\"" + plugin.myLocale(player.getUniqueId()).islandTitle + "\", \"color\":\"" + plugin.myLocale(player.getUniqueId()).islandTitleColor + "\"}");
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "minecraft:title " + player.getName() + " title {\"text\":\"" + plugin.myLocale(player.getUniqueId()).islandTitle.replace("[player]", player.getName()) + "\", \"color\":\"" + plugin.myLocale(player.getUniqueId()).islandTitleColor + "\"}");
}
if (!plugin.myLocale(player.getUniqueId()).islandDonate.isEmpty() && !plugin.myLocale(player.getUniqueId()).islandURL.isEmpty()) {
// plugin.getLogger().info("DEBUG: tellraw " + player.getName() + " {\"text\":\"" + plugin.myLocale(player.getUniqueId()).islandDonate + "\",\"color\":\"" + plugin.myLocale(player.getUniqueId()).islandDonateColor + "\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\""
// + plugin.myLocale(player.getUniqueId()).islandURL + "\"}}");
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "minecraft:tellraw " + player.getName() + " {\"text\":\"" + plugin.myLocale(player.getUniqueId()).islandDonate.replace("[player]", player.getName()) + "\",\"color\":\"" + plugin.myLocale(player.getUniqueId()).islandDonateColor + "\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + plugin.myLocale(player.getUniqueId()).islandURL + "\"}}");
}
}
if (reason.equals(PasteReason.NEW_ISLAND)) {
// plugin.getLogger().info("DEBUG: First time");
if (!player.hasPermission(Settings.PERMPREFIX + "command.newexempt")) {
// plugin.getLogger().info("DEBUG: Executing new island commands");
IslandCmd.runCommands(Settings.startCommands, player);
}
} else if (reason.equals(PasteReason.RESET)) {
// plugin.getLogger().info("DEBUG: Reset");
if (!player.hasPermission(Settings.PERMPREFIX + "command.resetexempt")) {
// plugin.getLogger().info("DEBUG: Executing reset island commands");
IslandCmd.runCommands(Settings.resetCommands, player);
}
}
}
}, 10L);
}
if (!islandCompanion.isEmpty() && grass != null) {
Bukkit.getServer().getScheduler().runTaskLater(ASkyBlock.getPlugin(), new Runnable() {
@Override
public void run() {
spawnCompanion(player, grass);
}
}, 40L);
}
// Set the bedrock block meta data to the original spawn location
// Doesn't survive a server restart. TODO: change to add this info elsewhere.
/*
if (playerSpawn != null) {
blockToChange = loc.getBlock();
if (blockToChange.getType().equals(Material.BEDROCK)) {
String spawnLoc = Util.getStringLocation(loc.clone().add(playerSpawn).add(new Vector(0.5D,0D,0.5D)));
blockToChange.setMetadata("playerSpawn", new FixedMetadataValue(plugin, spawnLoc));
}
}
*/
}
Aggregations