下面列出了怎么用org.bukkit.inventory.HorseInventory的API类实例代码及写法,或者点击链接到github查看源代码。
@EventHandler(ignoreCancelled = true)
public void on(InventoryDragEvent event) {
if (isEnabled()) return;
if (!(event.getView().getTopInventory() instanceof HorseInventory)) return;
// if it's not a disabled type do nothing
if (!DISABLED.contains(event.getOldCursor().getType())) return;
event.getWhoClicked().sendMessage(messages.getRaw("disabled message"));
event.setCancelled(true);
}
@Override
public HorseInventory getInventory();
@Override
public HorseInventory getInventory() {
return new CraftInventoryHorse(getHandle().horseChest);
}
@Override
public void setArmour(HorseArmour a) {
((HorseInventory) ((InventoryHolder) getBukkitEntity()).getInventory())
.setArmor(a.getMaterial() == null ? null : new ItemStack(a.getMaterial(), 1));
}
public HorseInventory getInventory() {
return new CraftInventoryHorse(getHandle().horseChest);
}
@EventHandler(ignoreCancelled = true)
public void on(InventoryClickEvent event) {
if (isEnabled()) return;
if (!(event.getView().getTopInventory() instanceof HorseInventory)) return;
// clicked outside of the window
if (event.getClickedInventory() == null) return;
final InventoryType clicked = event.getClickedInventory().getType();
// get any relevant stack to check the type of based on the action took
Optional<ItemStack> relevant = Optional.absent();
switch (event.getAction()) {
case MOVE_TO_OTHER_INVENTORY:
// only worry about player -> horse
if (clicked == InventoryType.PLAYER) {
relevant = Optional.fromNullable(event.getCurrentItem());
}
break;
case PLACE_ALL:
case PLACE_SOME:
case PLACE_ONE:
case SWAP_WITH_CURSOR:
// only worry about within the horse
if (clicked != InventoryType.PLAYER) {
relevant = Optional.fromNullable(event.getCursor());
}
break;
case HOTBAR_SWAP:
// only worry about within a horse
if (clicked != InventoryType.PLAYER) {
relevant = Optional.fromNullable(
event.getWhoClicked().getInventory().getItem(event.getHotbarButton())
);
}
break;
default:
}
if (relevant.isPresent() && DISABLED.contains(relevant.get().getType())) {
event.getWhoClicked().sendMessage(messages.getRaw("disabled message"));
event.setCancelled(true);
}
}