OSDN Git Service

不要となっていたプロパティを削除
[kcd/KCD.git] / KCD / ApplySuppliesCommand.swift
index 448aa94..d241816 100644 (file)
@@ -8,27 +8,50 @@
 
 import Cocoa
 
-class ApplySuppliesCommand: JSONCommand {
+final class ApplySuppliesCommand: JSONCommand {
+    
     override func execute() {
+        
         let store = ServerDataStore.oneTimeEditor()
-        guard let data = json["api_data"] as? [String: Any],
-            let infos = data["api_ship"] as? [[String: Any]]
-            else { return }
-        infos.forEach {
-            guard let i = $0["api_id"] as? Int,
-                let ship = store.ship(byId: i),
-                let bull = $0["api_bull"] as? Int,
-                let fuel = $0["api_fuel"] as? Int,
-                let slots = $0["api_onslot"] as? [Int],
-                slots.count > 4
-                else { return }
-            ship.bull = bull
-            ship.fuel = fuel
-            ship.onslot_0 = slots[0]
-            ship.onslot_1 = slots[1]
-            ship.onslot_2 = slots[2]
-            ship.onslot_3 = slots[3]
-            ship.onslot_4 = slots[4]
+        
+        data["api_ship"]
+            .forEach { _, json in
+                
+                guard let i = json["api_id"].int else {
+                    
+                    return
+                }
+                guard let ship = store.sync(execute: { store.ship(by: i) }) else {
+                    
+                    return
+                }
+                guard let bull = json["api_bull"].int else {
+                    
+                    return
+                }
+                guard let fuel = json["api_fuel"].int else {
+                    
+                    return
+                }
+                guard let slots = json["api_onslot"].arrayObject as? [Int] else {
+                    
+                    return
+                }
+                guard slots.count > 4 else {
+                    
+                    return
+                }
+                
+                store.sync {
+                    
+                    ship.bull = bull
+                    ship.fuel = fuel
+                    ship.onslot_0 = slots[0]
+                    ship.onslot_1 = slots[1]
+                    ship.onslot_2 = slots[2]
+                    ship.onslot_3 = slots[3]
+                    ship.onslot_4 = slots[4]
+                }
         }
     }
 }