import Cocoa
-class RemodelSlotItemCommand: JSONCommand {
+final class RemodelSlotItemCommand: JSONCommand {
+
override func execute() {
- guard let success = data["api_remodel_flag"].int,
- success != 0
- else { return }
- guard let slotItemId = arguments["api_slot_id"].flatMap({ Int($0) })
- else { return print("api_slot_id is wrong") }
+ guard let success = data["api_remodel_flag"].int, success != 0 else {
+
+ return
+ }
+ guard let slotItemId = parameter["api_slot_id"].int else {
+
+ Logger.shared.log("api_slot_id is wrong")
+
+ return
+ }
let afterSlot = data["api_after_slot"]
let store = ServerDataStore.oneTimeEditor()
- guard let slotItem = store.slotItem(byId: slotItemId)
- else { return print("SlotItem not found") }
-
- if let locked = afterSlot["api_locked"].bool {
- slotItem.locked = locked
+ store.sync {
+ guard let slotItem = store.slotItem(by: slotItemId) else {
+
+ Logger.shared.log("SlotItem not found")
+
+ return
+ }
+
+ if let locked = afterSlot["api_locked"].int {
+
+ slotItem.locked = (locked != 0)
+ }
+ if let masterSlotItemId = afterSlot["api_slotitem_id"].int,
+ masterSlotItemId != slotItem.slotitem_id,
+ let masterSlotItem = store.masterSlotItem(by: slotItemId) {
+
+ slotItem.master_slotItem = masterSlotItem
+ slotItem.slotitem_id = slotItemId
+
+ }
+ if let level = afterSlot["api_level"].int {
+
+ slotItem.level = level
+ }
+
+ // remove used slot items.
+ guard let useSlot = self.data["api_use_slot_id"].arrayObject as? [Int] else {
+
+ return
+ }
+
+ store.slotItems(in: useSlot).forEach(store.delete)
}
- if let masterSlotItemId = afterSlot["api_slotitem_id"].int,
- masterSlotItemId != slotItem.slotitem_id,
- let masterSlotItem = store.masterSlotItem(by: slotItemId) {
- slotItem.master_slotItem = masterSlotItem
- slotItem.slotitem_id = slotItemId
- }
- if let level = afterSlot["api_level"].int {
- slotItem.level = level
- }
-
- // remove used slot items.
- guard let useSlot = data["api_use_slot_id"].arrayObject as? [Int]
- else { return }
- store.slotItems(in: useSlot).forEach { store.delete($0) }
}
}