Added some useful store methods

This commit is contained in:
themode 2021-04-03 19:35:03 +02:00
parent dfa7d712c2
commit ca41365453
2 changed files with 21 additions and 6 deletions

View File

@ -100,6 +100,16 @@ public class ItemStack {
return builder().meta(metaOperator).build(); return builder().meta(metaOperator).build();
} }
@Contract(value = "_, -> new", pure = true)
public @NotNull ItemStack withStore(@NotNull ItemStore store) {
return builder().store(store).build();
}
@Contract(value = "_ -> new", pure = true)
public @NotNull ItemStack withStore(@NotNull Consumer<@NotNull ItemStoreBuilder> metaOperator) {
return builder().store(metaOperator).build();
}
@Contract(pure = true) @Contract(pure = true)
public @Nullable Component getDisplayName() { public @Nullable Component getDisplayName() {
return meta.getDisplayName(); return meta.getDisplayName();

View File

@ -80,9 +80,6 @@ public class PlayerInit {
}) })
.build(); .build();
ItemStore store = itemStack.getStore();
System.out.println("value: " + store.get("key"));
itemStack = itemStack.with(itemBuilder -> itemBuilder itemStack = itemStack.with(itemBuilder -> itemBuilder
.amount(10) .amount(10)
.meta(CompassMeta.class, builder -> { .meta(CompassMeta.class, builder -> {
@ -230,9 +227,16 @@ public class PlayerInit {
player.setPermissionLevel(4); player.setPermissionLevel(4);
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
ItemStack itemStack = ItemStack.of(Material.STONE, 64); ItemStack itemStack = ItemStack.builder(Material.STONE)
inventory.addItemStack(itemStack.withMeta(metaBuilder -> metaBuilder.set(ItemTag.Integer("int"), 25))); .amount(64)
inventory.replaceItemStack(0, i -> i.withAmount(32)); .store(store -> {
store.set("key", 5, Integer::sum);
})
.build();
itemStack = itemStack.withStore(storeBuilder -> storeBuilder.set("key2", 25, Integer::sum));
inventory.addItemStack(itemStack);
{ {
ItemStack item = ItemStack.builder(Material.DIAMOND_CHESTPLATE) ItemStack item = ItemStack.builder(Material.DIAMOND_CHESTPLATE)
@ -251,6 +255,7 @@ public class PlayerInit {
globalEventHandler.addEventCallback(PlayerUseItemEvent.class, useEvent -> { globalEventHandler.addEventCallback(PlayerUseItemEvent.class, useEvent -> {
final Player player = useEvent.getPlayer(); final Player player = useEvent.getPlayer();
System.out.println("test: " + player.getItemInMainHand().getStore().get("key2"));
player.sendMessage("Using item in air: " + useEvent.getItemStack().getMaterial()); player.sendMessage("Using item in air: " + useEvent.getItemStack().getMaterial());
}); });