Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
InventoryView.java
Go to the documentation of this file.
1 package org.bukkit.inventory;
2 
3 import org.bukkit.entity.HumanEntity;
4 import org.bukkit.event.inventory.InventoryType;
5 
14 public abstract class InventoryView {
15  public final static int OUTSIDE = -999;
19  public enum Property {
48  int id;
50  private Property(int id, InventoryType appliesTo) {
51  this.id = id;
52  style = appliesTo;
53  }
54 
56  return style;
57  }
58 
59  public int getId() {
60  return id;
61  }
62  }
67  public abstract Inventory getTopInventory();
68 
73  public abstract Inventory getBottomInventory();
74 
79  public abstract HumanEntity getPlayer();
80 
87  public abstract InventoryType getType();
88 
97  public void setItem(int slot, ItemStack item) {
98  if (slot != OUTSIDE) {
99  if (slot < getTopInventory().getSize()) {
100  getTopInventory().setItem(convertSlot(slot),item);
101  } else {
102  getBottomInventory().setItem(convertSlot(slot),item);
103  }
104  } else {
105  getPlayer().getWorld().dropItemNaturally(getPlayer().getLocation(), item);
106  }
107  }
108 
114  public ItemStack getItem(int slot) {
115  if (slot == OUTSIDE) {
116  return null;
117  }
118  if (slot < getTopInventory().getSize()) {
119  return getTopInventory().getItem(convertSlot(slot));
120  } else {
121  return getBottomInventory().getItem(convertSlot(slot));
122  }
123  }
124 
129  public final void setCursor(ItemStack item) {
130  getPlayer().setItemOnCursor(item);
131  }
132 
137  public final ItemStack getCursor() {
138  return getPlayer().getItemOnCursor();
139  }
140 
150  public final int convertSlot(int rawSlot) {
151  int numInTop = getTopInventory().getSize();
152  if (rawSlot < numInTop) {
153  return rawSlot;
154  }
155  int slot = rawSlot - numInTop;
156  if (getType() == InventoryType.CRAFTING) {
157  if(slot < 4) return 39 - slot;
158  else slot -= 4;
159  }
160  if (slot >= 27) slot -= 27;
161  else slot += 9;
162  return slot;
163  }
164 
168  public final void close() {
170  }
171 
178  public final int countSlots() {
180  }
181 
182  public final boolean setProperty(Property prop, int value) {
183  return getPlayer().setWindowProperty(prop, value);
184  }
185 
190  public final String getTitle() {
191  return getTopInventory().getTitle();
192  }
193 }