private static void updateInventory(
@NotNull Player player,
@NotNull Inventory inventory,
int slot,
InventoryAction action,
ItemStack currentItem,
@NotNull ItemStack cursor
) {
InventoryManager.updateInventory(player, inventory, slot, InventoryType.SlotType.CONTAINER, action, currentItem, cursor);
}
java类org.bukkit.inventory.Inventory的实例源码
InventoryManager.java 文件源码
项目:RPGInventory
阅读 28
收藏 0
点赞 0
评论 0
ShapedAdder.java 文件源码
项目:CustomRecipes
阅读 42
收藏 0
点赞 0
评论 0
@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
if (event.getInventory().getHolder() instanceof ShapedRecipeHolder) {
ShapedRecipeHolder holder = (ShapedRecipeHolder) event.getInventory().getHolder();
if (holder != this) return;
Inventory inventory = event.getInventory();
if (InventoryUtils.isEmpty(inventory)) {
holder.callbackPlayer.sendMessage(ChatColor.RED + "Do you seriously want to create a recipe without ingredients?");
return;
}
ShapedRecipes nmsRecipe = holder.toRecipe();
CRShapedRecipe<ShapedRecipes> shapedRecipe = new CRShapedRecipe<>(nmsRecipe);
List<List<String>> recipeIngredients = shapedRecipe.getIngredients().stream()
.map((CRChoiceIngredient ingr) -> ingr.getChoices().stream()
.map(InventoryUtils::getItemName).collect(Collectors.toList()))
.collect(Collectors.toList());
String recipeString = recipeIngredients + "" +
ChatColor.RESET + " -> " +
InventoryUtils.getItemName(shapedRecipe.getResult());
boolean success = holder.plugin.getCraftingManager().addRecipe(holder.key, nmsRecipe, shapedRecipe);
if (success) {
holder.callbackPlayer.sendMessage(String.format("%sAdded shaped recipe: %s%s%s!",
ChatColor.GREEN, ChatColor.WHITE, recipeString, ChatColor.WHITE));
plugin.saveCraftingRecipeFile("shaped", shapedRecipe);
} else {
holder.callbackPlayer.sendMessage(ChatColor.RED + "Couldn't create a shaped recipe. Possibly a duplicate key.");
}
HandlerList.unregisterAll(holder);
}
}
ListRecipesInventoryHolder.java 文件源码
项目:CustomRecipes
阅读 24
收藏 0
点赞 0
评论 0
public ListRecipesInventoryHolder(String type, Iterable<? extends ItemStack> items) {
items.forEach(recipeItems::add);
//fill page inventories
int recipeIndex = 0;
Inventory inventory = null;
do {
int inPageIndex = recipeIndex % MAX_RECIPES_PER_PAGE;
if (inPageIndex == 0) {
inventory = Bukkit.createInventory(this, 54, type + " recipes");
pages.add(inventory);
}
inventory.setItem(inPageIndex, recipeItems.get(recipeIndex));
} while (++recipeIndex < recipeItems.size());
//add previous and next buttons where applicable
for (int pageNr = 0; pageNr < pages.size(); pageNr++) {
Inventory page = pages.get(pageNr);
if (pageNr != 0) {
page.setItem(45, ListRecipesListener.previousItem());
}
if (pageNr != pages.size() - 1) {
page.setItem(53, ListRecipesListener.nextItem());
}
}
}
MyPetManager.java 文件源码
项目:RPGInventory
阅读 29
收藏 0
点赞 0
评论 0
@EventHandler
public void onMyPetItemUse(PlayerInteractEvent event) {
if (event.getItem() != null) {
Player player = event.getPlayer();
if (!InventoryManager.playerIsLoaded(player)) {
return;
}
Inventory inventory = InventoryManager.get(player).getInventory();
if (isMyPetItem(event.getItem())
&& (event.getAction() == Action.RIGHT_CLICK_BLOCK
|| event.getAction() == Action.RIGHT_CLICK_AIR)) {
Slot petSlot = getMyPetSlot();
ItemStack currentPet = inventory.getItem(petSlot.getSlotId());
boolean hasPet = !petSlot.isCup(currentPet);
ItemStack newPet = event.getItem();
if (!hasPet) {
currentPet = null;
}
player.getEquipment().setItemInMainHand(currentPet);
inventory.setItem(petSlot.getSlotId(), newPet);
swapMyPets(player, hasPet, newPet);
}
}
}
MobSelector.java 文件源码
项目:CloudNet
阅读 19
收藏 0
点赞 0
评论 0
public Collection<Inventory> inventories()
{
return CollectionWrapper.getCollection(this.mobs, new Catcher<Inventory, MobImpl>() {
@Override
public Inventory doCatch(MobImpl key)
{
return key.getInventory();
}
});
}
MobSelector.java 文件源码
项目:CloudNet
阅读 55
收藏 0
点赞 0
评论 0
public MobImpl find(Inventory inventory)
{
return CollectionWrapper.filter(this.mobs.values(), new Acceptable<MobImpl>() {
@Override
public boolean isAccepted(MobImpl value)
{
return value.getInventory().equals(inventory);
}
});
}
GUISortPing.java 文件源码
项目:NeverLag
阅读 24
收藏 0
点赞 0
评论 0
public Inventory getNextPage() {
if (this.page >= this.maxPage) {
if (this.guiMaker != null) {
return this.guiMaker.get();
} else {
return get(this.page);
}
} else {
this.page++;
return get(this.page);
}
}
SettingsInv.java 文件源码
项目:Transport-Pipes
阅读 25
收藏 0
点赞 0
评论 0
private static void populateInventoryLine(Inventory inv, int row, ItemStack... items) {
for (int i = 0; i < 9; i++) {
if (items.length > i && items[i] != null) {
ItemStack is = items[i];
inv.setItem(row * 9 + i, is);
}
}
}
BagEvents.java 文件源码
项目:PA
阅读 22
收藏 0
点赞 0
评论 0
private static Inventory getInventory(TOAUser p) {
Inventory i = Bukkit.createInventory(null, getInvSize(p), ChatColor.RED + "Mochila");
ItemStack[] item = i.getContents();
if (FileUtils.getInv().contains(p.getName())) {
for (int x = 0; x < getInvSize(p); x++)
item[x] = FileUtils.getInv().getItemStack(p.getName() + ".inv_" + x);
i.setContents(item);
return i;
}
return i;
}
GizmoUtils.java 文件源码
项目:ProjectAres
阅读 17
收藏 0
点赞 0
评论 0
public static void openMenu(Player player) {
Inventory inventory = Bukkit.createInventory(player, 18, ChatColor.RED + LobbyTranslations.get().t("gizmos", player));
inventory.setItem(4, Utils.getGhastTear(player, RaindropsListener.raindrops.get(player)));
int i = 9;
for(Gizmo gizmo : Gizmos.gizmos) {
inventory.setItem(i++, gizmo.getItemStack(player));
}
player.openInventory(inventory);
}