Advertisement
SimonBHB

MyImmutableInventoryData

Aug 30th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.15 KB | None | 0 0
  1. public class MyImmutableInventoryData extends AbstractImmutableData<MyImmutableInventoryData, MyInventoryData> {
  2.         private Map<Integer, ItemStack> inventory;
  3.  
  4.         public MyImmutableInventoryData(Map<Integer, ItemStack> inventory) {
  5.             this.inventory = inventory;
  6.             registerGetters();
  7.         }
  8.  
  9.         @Override
  10.         protected void registerGetters() {
  11.             registerFieldGetter(ToolKeys.INVENTORY, () -> this.inventory);
  12.             registerKeyValue(ToolKeys.INVENTORY, this::inventory);
  13.         }
  14.  
  15.         public ImmutableMapValue<Integer, ItemStack> inventory() {
  16.             return Sponge.getRegistry().getValueFactory().createMapValue(ToolKeys.INVENTORY, inventory).asImmutable();
  17.         }
  18.  
  19.         @Override
  20.         public MyInventoryData asMutable() {
  21.             return new MyInventoryData(inventory);
  22.         }
  23.  
  24.         @Override
  25.         public int getContentVersion() {
  26.             return 1;
  27.         }
  28.  
  29.         @Override
  30.         public DataContainer toContainer() {
  31.             return super.toContainer()
  32.                     .set(ToolKeys.INVENTORY.getQuery(), this.inventory);
  33.         }
  34.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement