SortType enum

Пакет: com.hypixel.hytale.server.core.inventory.container

Файл: com/hypixel/hytale/server/core/inventory/container/SortType.java

Поля (9)

МодификаторыТипИмя
WEAPON, ARMOR, TOOL, ITEM, SPECIAL
int var1
ItemQuality var2
int var3
Comparable var3
Comparable var4
Comparator var6
var6
var6

Методы (6)

МодификаторыВозвратСигнатура
Dummy Dummy()
ItemType ItemType()
private static SortType.Dummy.ItemType getTypeprivate static SortType.Dummy.ItemType getType(@Nonnull Item var0)
if if(nullxxx)
if if(nullxxxx)
if if(var3 == var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.inventory.container;

class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.ItemQuality;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import java.util.Comparator;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;

class="kw">public enum SortType {
   NAME(var0 -> var0.getItem().getTranslationKey(), false, false),
   TYPE(var0 -> SortType.Dummy.ItemType.getType(var0.getItem()), false, true),
   RARITY(var0 -> {
      int var1 = var0.getItem().getQualityIndex();
      ItemQuality var2 = ItemQuality.getAssetMap().getAsset(var1);
      int var3 = (var2 != null ? var2 : ItemQuality.DEFAULT_ITEM_QUALITY).getQualityValue();
      class="kw">return var3;
   }, true, true);

   @Nonnull
   class="kw">public class="kw">static class="kw">final SortType[] VALUES = values();
   @Nonnull
   class="kw">private class="kw">final Comparator<ItemStack> comparator;

   <U class="kw">extends Comparable<U>> SortType(@Nonnull class="kw">final Function<ItemStack, U> nullxx, class="kw">final boolean nullxxx, class="kw">final boolean nullxxxx) {
      Comparator var6 = comparatorFor(nullxx);
      if (nullxxx) {
         var6 = var6.reversed();
      }

      if (nullxxxx) {
         var6 = var6.thenComparing(comparatorFor(var0 -> var0.getItem().getTranslationKey()));
      }

      this.comparator = Comparator.nullsLast(var6);
   }

   @Nonnull
   class="kw">public Comparator<ItemStack> getComparator() {
      class="kw">return this.comparator;
   }

   @Nonnull
   class="kw">private class="kw">static <U class="kw">extends Comparable<U>> Comparator<ItemStack> comparatorFor(@Nonnull Function<ItemStack, U> var0) {
      class="kw">return (var1, var2) -> {
         Comparable var3 = var0.apply(var1);
         Comparable var4 = var0.apply(var2);
         if (var3 == var4) {
            class="kw">return 0;
         } else if (var3 == null) {
            class="kw">return 1;
         } else {
            class="kw">return var4 == null ? -1 : var3.compareTo(var4);
         }
      };
   }

   class="kw">static class Dummy {
      Dummy() {
      }

      enum ItemType {
         WEAPON,
         ARMOR,
         TOOL,
         ITEM,
         SPECIAL;

         ItemType() {
         }

         @Nonnull
         class="kw">private class="kw">static SortType.Dummy.ItemType getType(@Nonnull Item var0) {
            if (var0.getWeapon() != null) {
               class="kw">return WEAPON;
            } else if (var0.getArmor() != null) {
               class="kw">return ARMOR;
            } else if (var0.getTool() != null) {
               class="kw">return TOOL;
            } else {
               class="kw">return var0.getBuilderTool() != null ? SPECIAL : ITEM;
            }
         }
      }
   }
}