Advertisement
Scouter456

Untitled

Aug 10th, 2023
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.29 KB | None | 0 0
  1. public class LootFruitCodec {
  2.  
  3.     public static Codec<LootFruitCodec> CODEC = RecordCodecBuilder.create(inst -> inst
  4.             .group(
  5.                     Codec.INT.fieldOf("tier").forGetter(t -> t.tier),
  6.                     Codec.STRING.fieldOf("translation_key").forGetter(t -> t.translationKey),
  7.                     Registry.ITEM.byNameCodec().fieldOf("trade_item").forGetter(t -> t.tradeItem),
  8.                     RollableItemCodec.CODEC.listOf().fieldOf("items").forGetter(i -> i.items),
  9.                     TextColor.CODEC.fieldOf("color").forGetter(c -> c.color),
  10.                     Codec.INT.fieldOf("CustomModelData").forGetter(m -> m.customModelData)
  11.             ).apply(inst, LootFruitCodec::new)
  12.     );
  13.  
  14.     private final int tier;
  15.     private final String translationKey;
  16.     private final List<RollableItemCodec> items;
  17.     private final Item tradeItem;
  18.     private final TextColor color;
  19.     private final int customModelData;
  20.     public LootFruitCodec(int tier, String translationKey, Item tradeItem, List<RollableItemCodec> items, TextColor color, int customModelData) {
  21.         this.tier = tier;
  22.         this.translationKey = translationKey;
  23.         this.items = items;
  24.         this.color = color;
  25.         this.tradeItem = tradeItem;
  26.         this.customModelData = customModelData;
  27.     }
  28.  
  29.  
  30.     public int getTier() {
  31.         return tier;
  32.     }
  33.  
  34.     public Item getTradeItem() {
  35.         return tradeItem;
  36.     }
  37.  
  38.     public List<RollableItemCodec> getItems() {
  39.         return items;
  40.     }
  41.  
  42.     public TextColor getColor() {
  43.         return color;
  44.     }
  45.  
  46.     public String getTranslationKey() {
  47.         return translationKey;
  48.     }
  49.  
  50.     public int getCustomModelData() {
  51.         return customModelData;
  52.     }
  53.  
  54.     public static <T> Map<T, List<LootFruitCodec>> convertToMap(Map<T, List<LootFruitCodec>> map) {
  55.         return map.entrySet().stream().collect(Collectors.toMap(
  56.                 Map.Entry::getKey,
  57.                 entry -> entry.getValue().stream()
  58.                         .map(lootFruitCodec -> new LootFruitCodec(
  59.                                 lootFruitCodec.getTier(),
  60.                                 lootFruitCodec.getTranslationKey(),
  61.                                 lootFruitCodec.getTradeItem(),
  62.                                 lootFruitCodec.getItems(),
  63.                                 lootFruitCodec.getColor(),
  64.                                 lootFruitCodec.getCustomModelData()
  65.                         ))
  66.                         .collect(Collectors.toList())
  67.         ));
  68.     }
  69.  
  70.     public static <T> Map<T, List<LootFruitCodec>> convertFromMap(Map<T, List<LootFruitCodec>> map) {
  71.         return map.entrySet().stream().collect(Collectors.toMap(
  72.                 Map.Entry::getKey,
  73.                 entry -> entry.getValue().stream()
  74.                         .map(lootFruit -> new LootFruitCodec(
  75.                                 lootFruit.getTier(),
  76.                                 lootFruit.getTranslationKey(),
  77.                                 lootFruit.getTradeItem(),
  78.                                 lootFruit.getItems(),
  79.                                 lootFruit.getColor(),
  80.                                 lootFruit.getCustomModelData()
  81.                         ))
  82.                         .collect(Collectors.toList())
  83.         ));
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement