11package com .flyaway .quicksort ;
22
33import org .bukkit .Material ;
4+ import org .bukkit .enchantments .Enchantment ;
45import org .bukkit .entity .Player ;
56import org .bukkit .inventory .Inventory ;
67import org .bukkit .inventory .ItemStack ;
78import org .bukkit .inventory .PlayerInventory ;
9+ import org .bukkit .inventory .meta .PotionMeta ;
10+ import org .bukkit .potion .PotionType ;
811
912import java .util .*;
1013
@@ -27,9 +30,6 @@ public boolean canSort(Player player) {
2730
2831 public boolean isOnCooldown (Player player ) {
2932 long cooldownTime = 1000L ; // 1 second cooldown
30- if (cooldownTime <= 0L ) {
31- return false ;
32- }
3333
3434 Long lastSort = sortCooldowns .get (player .getUniqueId ());
3535 if (lastSort == null ) {
@@ -147,9 +147,9 @@ private void sortCategoryByOrder(List<ItemStack> items, List<Material> order) {
147147 // Если порядок одинаковый, продолжаем сравнение
148148 }
149149 // Если один в порядке, а другой нет - тот что в порядке идет первым
150- else if (index1 != -1 && index2 == - 1 ) {
150+ else if (index1 != -1 ) {
151151 return -1 ;
152- } else if (index1 == - 1 && index2 != -1 ) {
152+ } else if (index2 != -1 ) {
153153 return 1 ;
154154 }
155155 // Если оба не в порядке или порядок одинаковый - сравниваем дальше
@@ -170,8 +170,8 @@ else if (index1 != -1 && index2 == -1) {
170170 }
171171
172172 private int compareByEnchantments (ItemStack item1 , ItemStack item2 ) {
173- Map <org . bukkit . enchantments . Enchantment , Integer > enchants1 = ItemStackManager .getAllEnchantments (item1 );
174- Map <org . bukkit . enchantments . Enchantment , Integer > enchants2 = ItemStackManager .getAllEnchantments (item2 );
173+ Map <Enchantment , Integer > enchants1 = ItemStackManager .getAllEnchantments (item1 );
174+ Map <Enchantment , Integer > enchants2 = ItemStackManager .getAllEnchantments (item2 );
175175
176176 // Сначала по количеству зачарований (убывание)
177177 int enchantCount1 = enchants1 .size ();
@@ -181,9 +181,9 @@ private int compareByEnchantments(ItemStack item1, ItemStack item2) {
181181 }
182182
183183 // Если количество одинаковое — сравниваем по названию и уровню первого зачарования
184- if (enchantCount1 > 0 && enchantCount2 > 0 ) {
185- Map .Entry <org . bukkit . enchantments . Enchantment , Integer > enchant1 = enchants1 .entrySet ().iterator ().next ();
186- Map .Entry <org . bukkit . enchantments . Enchantment , Integer > enchant2 = enchants2 .entrySet ().iterator ().next ();
184+ if (enchantCount1 > 0 ) {
185+ Map .Entry <Enchantment , Integer > enchant1 = enchants1 .entrySet ().iterator ().next ();
186+ Map .Entry <Enchantment , Integer > enchant2 = enchants2 .entrySet ().iterator ().next ();
187187
188188 String name1 = enchant1 .getKey ().getKey ().getKey ();
189189 String name2 = enchant2 .getKey ().getKey ().getKey ();
@@ -198,13 +198,6 @@ private int compareByEnchantments(ItemStack item1, ItemStack item2) {
198198 return 0 ;
199199 }
200200
201- /**
202- * Возвращает зачарования для любого предмета, включая зачарованные книги.
203- */
204- private static Map <org .bukkit .enchantments .Enchantment , Integer > getAllEnchantments (ItemStack item ) {
205- return ItemStackManager .getAllEnchantments (item );
206- }
207-
208201 private void sortPotions (List <ItemStack > potions , List <Material > order ) {
209202 potions .sort ((item1 , item2 ) -> {
210203 int index1 = order .indexOf (item1 .getType ());
@@ -219,9 +212,9 @@ private void sortPotions(List<ItemStack> potions, List<Material> order) {
219212 // Если порядок одинаковый, продолжаем сравнение
220213 }
221214 // Если одно в порядке, а другое нет - то что в порядке идет первым
222- else if (index1 != -1 && index2 == - 1 ) {
215+ else if (index1 != -1 ) {
223216 return -1 ;
224- } else if (index1 == - 1 && index2 != -1 ) {
217+ } else if (index2 != -1 ) {
225218 return 1 ;
226219 }
227220 // Если оба не в порядке или порядок одинаковый - сравниваем дальше
@@ -263,7 +256,7 @@ else if (index1 != -1 && index2 == -1) {
263256 }
264257
265258 private boolean hasPotionEffect (ItemStack potion ) {
266- if (!(potion .getItemMeta () instanceof org . bukkit . inventory . meta . PotionMeta meta )) {
259+ if (!(potion .getItemMeta () instanceof PotionMeta meta )) {
267260 return false ;
268261 }
269262
@@ -272,33 +265,26 @@ private boolean hasPotionEffect(ItemStack potion) {
272265 return true ;
273266 }
274267
275- // Новый способ проверки базового типа зелья
276- org .bukkit .potion .PotionType potionType = meta .getBasePotionType ();
268+ PotionType potionType = meta .getBasePotionType ();
277269 if (potionType == null ) return false ;
278270
279271 // Безэффектные типы — всегда false
280272 return !isEffectlessPotion (potionType );
281273 }
282274
283- private boolean isEffectlessPotion (org .bukkit .potion .PotionType potionType ) {
284- switch (potionType ) {
285- case WATER :
286- case MUNDANE :
287- case THICK :
288- case AWKWARD :
289- return true ;
290- default :
291- return false ;
292- }
275+ private boolean isEffectlessPotion (PotionType potionType ) {
276+ return switch (potionType ) {
277+ case WATER , MUNDANE , THICK , AWKWARD -> true ;
278+ default -> false ;
279+ };
293280 }
294281
295282 private String getPotionEffectName (ItemStack potion ) {
296- if (potion .getItemMeta () instanceof org . bukkit . inventory . meta . PotionMeta meta ) {
283+ if (potion .getItemMeta () instanceof PotionMeta meta ) {
297284 if (meta .hasCustomEffects ()) {
298- return meta .getCustomEffects ().get ( 0 ).getType ().getName ();
285+ return meta .getCustomEffects ().getFirst ( ).getType ().getKey (). asString ();
299286 }
300- // Новый способ получения типа зелья
301- org .bukkit .potion .PotionType potionType = meta .getBasePotionType ();
287+ PotionType potionType = meta .getBasePotionType ();
302288 if (potionType != null ) {
303289 return potionType .name ();
304290 }
@@ -307,20 +293,18 @@ private String getPotionEffectName(ItemStack potion) {
307293 }
308294
309295 private int getPotionLevel (ItemStack potion ) {
310- if (potion .getItemMeta () instanceof org .bukkit .inventory .meta .PotionMeta ) {
311- org .bukkit .inventory .meta .PotionMeta meta = (org .bukkit .inventory .meta .PotionMeta ) potion .getItemMeta ();
296+ if (potion .getItemMeta () instanceof PotionMeta meta ) {
312297 if (meta .hasCustomEffects ()) {
313- return meta .getCustomEffects ().get ( 0 ).getAmplifier () + 1 ;
298+ return meta .getCustomEffects ().getFirst ( ).getAmplifier () + 1 ;
314299 }
315300 }
316301 return 1 ;
317302 }
318303
319304 private int getPotionDuration (ItemStack potion ) {
320- if (potion .getItemMeta () instanceof org .bukkit .inventory .meta .PotionMeta ) {
321- org .bukkit .inventory .meta .PotionMeta meta = (org .bukkit .inventory .meta .PotionMeta ) potion .getItemMeta ();
305+ if (potion .getItemMeta () instanceof PotionMeta meta ) {
322306 if (meta .hasCustomEffects ()) {
323- return meta .getCustomEffects ().get ( 0 ).getDuration ();
307+ return meta .getCustomEffects ().getFirst ( ).getDuration ();
324308 }
325309 }
326310 return 0 ;
0 commit comments