private async Task HandleSkillBarPacket(SkillBarPacket skillBarPacket) { using var database = DependencyContainer.Instance.Resolve <IDatabase>(); // Remove old items. var items = database.QuickItems.Where(item => item.Character.Id == this.Id); database.QuickItems.RemoveRange(items); DbQuickSkillBarItem[] newItems = new DbQuickSkillBarItem[skillBarPacket.QuickItems.Length]; // Add new items. for (var i = 0; i < skillBarPacket.QuickItems.Length; i++) { var quickItem = skillBarPacket.QuickItems[i]; newItems[i] = new DbQuickSkillBarItem() { Bar = quickItem.Bar, Slot = quickItem.Slot, Bag = quickItem.Bag, Number = quickItem.Number }; newItems[i].CharacterId = Id; } await database.QuickItems.AddRangeAsync(newItems); await database.SaveChangesAsync(); }
public async Task Handle(WorldClient client, SkillBarPacket packet) { var characterId = _gameSession.CharId; if (characterId == 0) { return; } // Remove old items. var items = _database.QuickItems.Where(item => item.Character.Id == characterId); _database.QuickItems.RemoveRange(items); var newItems = new DbQuickSkillBarItem[packet.QuickItems.Length]; // Add new items. for (var i = 0; i < packet.QuickItems.Length; i++) { var quickItem = packet.QuickItems[i]; newItems[i] = new DbQuickSkillBarItem() { Bar = quickItem.Bar, Slot = quickItem.Slot, Bag = quickItem.Bag, Number = quickItem.Number }; newItems[i].CharacterId = characterId; } await _database.QuickItems.AddRangeAsync(newItems); await _database.SaveChangesAsync(); }
private void HandleSkillBarPacket(SkillBarPacket skillBarPacket) { _taskQueue.Enqueue(ActionType.SAVE_QUICK_BAR, Id, skillBarPacket.QuickItems); }