diff --git a/EOBot/TrainerBot.cs b/EOBot/TrainerBot.cs index c7d516962..1085409a2 100644 --- a/EOBot/TrainerBot.cs +++ b/EOBot/TrainerBot.cs @@ -40,6 +40,7 @@ internal class TrainerBot : BotBase private ICharacterActions _characterActions; private IMapActions _mapActions; + private IItemActions _itemActions; private ICharacterRepository _characterRepository; @@ -77,6 +78,7 @@ protected override async Task DoWorkAsync(CancellationToken ct) var c = DependencyMaster.TypeRegistry[_index]; _mapActions = c.Resolve(); + _itemActions = c.Resolve(); _characterRepository = c.Resolve(); _characterActions = c.Resolve(); var mapCellStateProvider = c.Resolve(); @@ -312,7 +314,7 @@ private async Task PickUpItem(IItem item) private async Task JunkItem(IItem item) { ConsoleHelper.WriteMessage(ConsoleHelper.Type.JunkItem, $"{item.Amount,7} - {_itemData.Single(x => x.ID == item.ItemID).Name}"); - await TrySend(() => _mapActions.JunkItem(item)); + await TrySend(() => _itemActions.JunkItem(item)); await Task.Delay(TimeSpan.FromMilliseconds(ATTACK_BACKOFF_MS)); } diff --git a/EOLib/Domain/Item/ItemActions.cs b/EOLib/Domain/Item/ItemActions.cs new file mode 100644 index 000000000..c933ce7aa --- /dev/null +++ b/EOLib/Domain/Item/ItemActions.cs @@ -0,0 +1,33 @@ +using AutomaticTypeMapper; +using EOLib.Domain.Map; +using EOLib.Net; +using EOLib.Net.Communication; + +namespace EOLib.Domain.Item +{ + [AutoMappedType] + public class ItemActions : IItemActions + { + private readonly IPacketSendService _packetSendService; + + public ItemActions(IPacketSendService packetSendService) + { + _packetSendService = packetSendService; + } + + public void JunkItem(IItem item) + { + var packet = new PacketBuilder(PacketFamily.Item, PacketAction.Junk) + .AddShort(item.ItemID) + .AddInt(item.Amount) + .Build(); + + _packetSendService.SendPacket(packet); + } + } + + public interface IItemActions + { + void JunkItem(IItem item); + } +} diff --git a/EOLib/Domain/Map/MapActions.cs b/EOLib/Domain/Map/MapActions.cs index dc0710856..b94cfa21f 100644 --- a/EOLib/Domain/Map/MapActions.cs +++ b/EOLib/Domain/Map/MapActions.cs @@ -42,17 +42,6 @@ public ItemPickupResult PickUpItem(IItem item) return pickupResult; } - - // todo: item stuff probably belongs in its own action class - public void JunkItem(IItem item) - { - var packet = new PacketBuilder(PacketFamily.Item, PacketAction.Junk) - .AddShort(item.ItemID) - .AddInt(item.Amount) - .Build(); - - _packetSendService.SendPacket(packet); - } } public interface IMapActions @@ -60,7 +49,5 @@ public interface IMapActions void RequestRefresh(); ItemPickupResult PickUpItem(IItem item); - - void JunkItem(IItem item); } }