private static void parseAndInitItems(String json, ItemType typeItem) {
      JSONParser parser = new JSONParser();

      try {
         Object obj = parser.parse(json);
         JSONObject jparser = (JSONObject)obj;
         JSONArray jarray = (JSONArray)jparser.get("items");

         for(int i = 0; i < jarray.size(); ++i) {
            JSONObject item = (JSONObject)jarray.get(i);
            LocalizedString name = StringsLocalizationBundle.registerString((String)item.get("name_ru"), (String)item.get("name_en"));
            LocalizedString description = StringsLocalizationBundle.registerString((String)item.get("description_ru"), (String)item.get("description_en"));
            String id = (String)item.get("id");
            int priceM0 = Integer.parseInt((String)item.get("price_m0"));
            int priceM1 = priceM0;
            int priceM2 = priceM0;
            int priceM3 = priceM0;
            int rangM0 = Integer.parseInt((String)item.get("rang_m0"));
            int rangM1 = rangM0;
            int rangM2 = rangM0;
            int rangM3 = rangM0;
            PropertyItem[] propertysItemM0 = null;
            PropertyItem[] propertysItemM1 = null;
            PropertyItem[] propertysItemM2 = null;
            PropertyItem[] propertysItemM3 = null;

            if (typeItem != ItemType.COLOR && typeItem != ItemType.INVENTORY && typeItem != ItemType.PLUGIN) {
               JSONArray propertys = (JSONArray)item.get("propertys_m0");
               propertysItemM0 = new PropertyItem[propertys.size()];

               for(int p = 0; p < propertys.size(); ++p) {
                  JSONObject prop = (JSONObject)propertys.get(p);
                  propertysItemM0[p] = new PropertyItem(getType((String)prop.get("type")), (String)prop.get("value"));
               }

               for(int m = 1; m <= 3; ++m) {
                  propertys = (JSONArray)item.get("propertys_m" + m);
                  PropertyItem[] property = new PropertyItem[propertys.size()];

                  for(int p = 0; p < propertys.size(); ++p) {
                     JSONObject prop = (JSONObject)propertys.get(p);
                     property[p] = new PropertyItem(getType((String)prop.get("type")), (String)prop.get("value"));
                  }

                  switch(m) {
                     case 1:
                        propertysItemM1 = property;
                        priceM1 = Integer.parseInt((String)item.get("price_m1"));
                        rangM1 = Integer.parseInt((String)item.get("rang_m1"));
                        break;
                     case 2:
                        propertysItemM2 = property;
                        priceM2 = Integer.parseInt((String)item.get("price_m2"));
                        rangM2 = Integer.parseInt((String)item.get("rang_m2"));
                        break;
                     case 3:
                        propertysItemM3 = property;
                        priceM3 = Integer.parseInt((String)item.get("price_m3"));
                        rangM3 = Integer.parseInt((String)item.get("rang_m3"));
                        break;
                  }
               }
            } else {
               JSONArray propertys = (JSONArray)item.get("propertys_m0");
               propertysItemM0 = new PropertyItem[propertys.size()];

               for(int p = 0; p < propertys.size(); ++p) {
                  JSONObject prop = (JSONObject)propertys.get(p);
                  propertysItemM0[p] = new PropertyItem(getType((String)prop.get("type")), (String)prop.get("value"));
               }

               propertysItemM1 = propertysItemM0;
               propertysItemM2 = propertysItemM0;
               propertysItemM3 = propertysItemM0;
            }

            ModificationInfo[] mods = new ModificationInfo[4];
            mods[0] = new ModificationInfo(id + "_m0", priceM0, rangM0);
            mods[0].propertys = propertysItemM0;
            mods[1] = new ModificationInfo(id + "_m1", priceM1, rangM1);
            mods[1].propertys = propertysItemM1;
            mods[2] = new ModificationInfo(id + "_m2", priceM2, rangM2);
            mods[2].propertys = propertysItemM2;
            mods[3] = new ModificationInfo(id + "_m3", priceM3, rangM3);
            mods[3].propertys = propertysItemM3;
            boolean specialItem = item.get("special_item") == null ? false : (Boolean)item.get("special_item");
            boolean multicounted = item.get("multicounted") == null ? false : (Boolean)item.get("multicounted");
            boolean addable = item.get("addable_item") == null ? false : (Boolean)item.get("addable_item");
            items.put(id, new Item(id, description, typeItem == ItemType.INVENTORY || typeItem == ItemType.PLUGIN, index, propertysItemM0, typeItem, 0, name, propertysItemM1, priceM1, rangM1, priceM0, rangM0, mods, specialItem, 0, addable, multicounted));
            ++index;

            if (typeItem == ItemType.COLOR) {
               ColormapsFactory.addColormap(id + "_m0", new Colormap() {
                  {
                     PropertyItem[] var5;
                     int var4 = (var5 = mods[0].propertys).length;

                     for(int var3 = 0; var3 < var4; ++var3) {
                        PropertyItem _property = var5[var3];
                        this.addResistance(ColormapsFactory.getResistanceType(_property.property), GarageItemsLoader.getInt(_property.value.replace("%", "")));
                     }

                  }
               });
            }
         }
      } catch (ParseException var29) {
         var29.printStackTrace();
      }
   } как записать предмет с только модификацией м0 на основе этого кода