2015-01-24 2 views
0

저는 /bukkitguihelp inventory <playername>을 할 때 콘솔의 인벤토리를 뱉어 낼 수 있도록 BukkitGUI 용 bukkit 플러그인을 설계하고 있습니다. 내가 가지고있는 문제는 모든 슬롯을 읽지 않는다는 것입니다. JSON 데이터를 인쇄 할 때 첫 번째 슬롯이 누락되었습니다. http://pastebin.com/L8DhNGadBukkit - 플레이어의 인벤토리를 JSON으로 변환

PlayerInventory inventory = ((Player) Bukkit.getServer().getPlayer(
       args[1])).getInventory(); 
     JSONObject mainInv = new JSONObject(); 

     for (int i=39; i < 0; i--) { 
      ItemStack stack = inventory.getItem(i); 
      JSONObject inv = new JSONObject(); 
      inv.put("id",Integer.valueOf(i)); 

      if (stack != null) { 
       inv.put("amount",Integer.valueOf(stack.getAmount())); 
       MaterialData stackData = stack.getData(); 
       inv.put("type", stack.getTypeId() + "-" + stack.getDurability()); 
       inv.put("name", stackData.toString()); 
       mainInv.put(Integer.valueOf(i), inv); 
      } 
      else mainInv.put(Integer.valueOf(i), "null"); 
     } 
     System.out.println(mainInv); 

을하지만 i == 0i < 0를 설정할 때, 대신 재고 JSON 데이터의 { }를 출력 : JSON 내용 (I는 org.json 라이브러리를 사용하고 있습니다). 콘솔 오류가 나타나지 않으며 내가 잘못하고있는 것을 말할 수 없습니다. 문이 잘못을위한에서

답변

1

귀하의 조건 :

i=39; i < 0; i-- 

난 자체가 실패하고 루프를 종료합니다 (39) 첫 번째 조건 검사 (39) < 0으로 설정됩니다.

요구 사항에 따라 i> 0 또는 i> = 0으로 설정해야합니다.