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]
+ }
}
}
}