1. Java / Говнокод #15485

    +72

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    public boolean fastItemEquals(ItemStack st, ItemStack nd) {
            if(nd == null) return false;
            if(st.hashCode() != nd.hashCode()) return false;
            if(st.getType() != nd.getType()) return false;
            if(!st.getItemMeta().getDisplayName().equals(nd.getItemMeta().getDisplayName())) return false;
            if(st.getEnchantments().size() != nd.getEnchantments().size()) return false;
            if(st.getItemMeta().getLore().size() != nd.getItemMeta().getLore().size()) return false;
            final List<String> 
                    lst = st.getItemMeta().getLore(),
                    lnd = nd.getItemMeta().getLore();
            for(int i = 0 ; i < st.getItemMeta().getLore().size() ; i++)
                if(!lst.get(i).equals(lnd.get(i))) return false;
            
            //return st.isSimilar(nd);
            return true;
        }
        
        public void fastItemRemove(Inventory inv, ItemStack st) {
            for(int i = 0 ; i < inv.getContents().length ; i++)
                if(fastItemEquals(st, inv.getContents()[i])) inv.clear(i); 
        }

    Запостил: DiaLight, 15 Марта 2014

    Комментарии (9) RSS

    • Страшно представить, что в не "fast" версии.
      Ответить
    • final List<String>

      такого вот не хватает в шарпике
      Ответить
      • какого?
        Ответить
        • локальных констант
          Ответить
          • Да, я уж и забыл, что шарп это не умеет
            http://stackoverflow.com/questions/443687/why-does-c-sharp-disallow-readonly-local-variables
            ну и традиционно Тарас прав, все автоматом должно быть иммутабельным, а для мутабельных переменных нужно длинное ключевое слово (или даже другой тип, как в окамле)
            Ответить
          • А на кой они?
            Ответить
    • fastItemEquals(null, null) -> false
      Ответить

    Добавить комментарий