From 06b7b6442bf66812b7cc7d8ba9bbc14bbb2b9809 Mon Sep 17 00:00:00 2001 From: masakih Date: Sat, 14 Jan 2017 09:47:02 +0900 Subject: [PATCH] =?utf8?q?HMRemodelSlotItemCommand=E3=82=92=E4=BF=AE?= =?utf8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 装備を使用しない場合、状態が更新されない問題を修正 --- KCD/HMRemodelSlotItemCommand.swift | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/KCD/HMRemodelSlotItemCommand.swift b/KCD/HMRemodelSlotItemCommand.swift index 95a69827..6be6655c 100644 --- a/KCD/HMRemodelSlotItemCommand.swift +++ b/KCD/HMRemodelSlotItemCommand.swift @@ -10,17 +10,9 @@ import Cocoa class HMRemodelSlotItemCommand: HMJSONCommand { override func execute() { - // remove used slot items. guard let d = json as? [String:Any], - let data = d[dataKey] as? [String:Any], - let useSlot = data["api_use_slot_id"] as? [NSNumber] - else { return print("api_use_slot_id is wrong") } - let p = NSPredicate(format: "id IN %@", useSlot) - let store = HMServerDataStore.oneTimeEditor() - guard let s = try? store?.objects(withEntityName: "SlotItem", predicate: p), - let useSlotItems = s as? [HMKCSlotItemObject] - else { return print("slotItem not found") } - useSlotItems.forEach { store?.delete($0) } + let data = d[dataKey] as? [String:Any] + else { return print("JSON is wrong") } guard let success = data["api_remodel_flag"] as? Bool else { return } if !success { @@ -32,6 +24,7 @@ class HMRemodelSlotItemCommand: HMJSONCommand { let slotItemId = Int(sl) else { return print("api_slot_id is wrong") } let pp = NSPredicate(format: "id = %ld", slotItemId) + let store = HMServerDataStore.oneTimeEditor() guard let sls = try? store?.objects(withEntityName: "SlotItem", predicate: pp), let slotItems = sls as? [HMKCSlotItemObject], let slotItem = slotItems.first @@ -50,6 +43,14 @@ class HMRemodelSlotItemCommand: HMJSONCommand { guard let level = afterSlot["api_level"] as? NSNumber else { return print("api_level is wrong") } slotItem.level = level + + // remove used slot items. + guard let useSlot = data["api_use_slot_id"] as? [NSNumber] else { return } + let p = NSPredicate(format: "id IN %@", useSlot) + guard let s = try? store?.objects(withEntityName: "SlotItem", predicate: p), + let useSlotItems = s as? [HMKCSlotItemObject] + else { return print("slotItem not found") } + useSlotItems.forEach { store?.delete($0) } } private func setMasterSlotItem(_ slotItemId: NSNumber, to slotItem: HMKCSlotItemObject, store: HMCoreDataManager) { -- 2.11.0