Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

Refacto/move to nuget packages #47

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c093a56
start moving to nuget packages
BlowaXD Apr 18, 2019
c1d63e9
continue moving to nuget packages
BlowaXD Apr 18, 2019
020ed30
almost finish moving to nuget packages
BlowaXD Apr 18, 2019
1c94152
continue move (add chick.packets as submodule to faciliate all packet…
BlowaXD Apr 23, 2019
08831c9
continue moving to nuget packages
BlowaXD Apr 23, 2019
168f555
continue moving to nuget packages and cleanup
BlowaXD Apr 23, 2019
91950f3
continue...
BlowaXD Apr 23, 2019
97da77c
move to Qmmands 2.3
BlowaXD Apr 23, 2019
5fab5ec
update qmmands & add dependency to Game.Extensions (SendChatMessage)
BlowaXD Apr 23, 2019
0416f34
continue migration
BlowaXD Apr 24, 2019
cd53d74
continue cleanup
BlowaXD Apr 24, 2019
034032a
again and again
BlowaXD Apr 24, 2019
281145c
continue fixing things
BlowaXD Apr 24, 2019
70ef970
continue fixing some things
BlowaXD Apr 24, 2019
eef6fd5
continue migration
BlowaXD Apr 26, 2019
363ed81
migrating
BlowaXD Apr 26, 2019
ba53b26
SaltyEmu now compiles (should rework some essential things before mer…
BlowaXD May 19, 2019
bf5d3f2
Removed submodule vendor/ChickenAPI.Packets
BlowaXD May 31, 2019
c30523e
move to package & add CI (circleci)
BlowaXD May 31, 2019
4b927f7
change parsing repository link
BlowaXD May 31, 2019
41b51e3
continue SaltyEmu's rework
BlowaXD May 31, 2019
ca24302
move SimplePluginManager to IoCPluginManager // needs some rework
BlowaXD May 31, 2019
77eb5ac
fix compiling
BlowaXD Jun 1, 2019
8d975af
cleanup unnecessary files
BlowaXD Jun 1, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
continue migration
BlowaXD committed Apr 26, 2019
commit eef6fd556980c97eea5cad2fd5079a809aa53aa7
1 change: 1 addition & 0 deletions src/ChickenAPI.Data/Character/CharacterFamilyDto.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using ChickenAPI.Enums.Game.Families;
using FamilyAuthority = ChickenAPI.Packets.Enumerations.FamilyAuthority;

namespace ChickenAPI.Data.Character
{
10 changes: 0 additions & 10 deletions src/ChickenAPI.Enums/Game/Families/FamilyAuthority.cs

This file was deleted.

11 changes: 11 additions & 0 deletions src/ChickenAPI.Game.Impl/JsonConfigurationSerializer.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using ChickenAPI.Core.Configurations;

namespace ChickenAPI.Game.Impl
{
public class JsonConfigurationSerializer : IConfigurationSerializer
{
public string Serialize<T>(T conf) where T : IConfiguration => throw new System.NotImplementedException();

public T Deserialize<T>(string buffer) where T : IConfiguration => throw new System.NotImplementedException();
}
}
1 change: 0 additions & 1 deletion src/ChickenAPI.Game.Impl/PlayerEntity.cs
Original file line number Diff line number Diff line change
@@ -36,7 +36,6 @@
using ChickenAPI.Packets.Enumerations;
using ChickenAPI.Packets.Interfaces;
using EquipmentType = ChickenAPI.Enums.Game.Items.EquipmentType;
using FamilyAuthority = ChickenAPI.Enums.Game.Families.FamilyAuthority;

namespace ChickenAPI.Game.Entities.Player
{
2 changes: 1 addition & 1 deletion src/ChickenAPI.Game/Families/Events/FamilyJoinEvent.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using ChickenAPI.Data.Families;
using ChickenAPI.Enums.Game.Families;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game._Events;
using ChickenAPI.Packets.Enumerations;

namespace ChickenAPI.Game.Families.Events
{
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ public class CloseDefenceAlgorithm : ICharacterStatAlgorithm

public void Initialize()
{
_stats = new int[(int)CharacterClassType.Unknown, MAX_LEVEL];
_stats = new int[(int)CharacterClassType.MartialArtist + 1, MAX_LEVEL];


for (int i = 0; i < MAX_LEVEL; i++)
7 changes: 1 addition & 6 deletions src/Plugins/NosSharp.DatabasePlugin/DatabasePlugin.cs
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
using ChickenAPI.Core.Configurations;
using ChickenAPI.Core.Plugins;
using ChickenAPI.Core.Plugins.Exceptions;
using ChickenAPI.Game.Impl;
using Microsoft.EntityFrameworkCore;
using SaltyEmu.DatabasePlugin.Configuration;
using SaltyEmu.DatabasePlugin.Context;
@@ -11,12 +12,6 @@

namespace SaltyEmu.DatabasePlugin
{
internal class JsonConfigurationSerializer : IConfigurationSerializer
{
public string Serialize<T>(T conf) where T : IConfiguration => JsonConvert.SerializeObject(conf);

public T Deserialize<T>(string buffer) where T : IConfiguration => throw new NotImplementedException();
}
public class DatabasePlugin : IPlugin
{
private readonly ILogger Log;
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.ComponentModel.DataAnnotations;
using ChickenAPI.Enums.Game.Families;
using ChickenAPI.Packets.Enumerations;
using SaltyEmu.Database;
using SaltyEmu.DatabasePlugin.Models.Families;

Original file line number Diff line number Diff line change
@@ -28,6 +28,7 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\ChickenAPI.Game.Impl\ChickenAPI.Game.Impl.csproj" />
<ProjectReference Include="..\..\ChickenAPI.Game\ChickenAPI.Game.csproj" />
<ProjectReference Include="..\..\libs\SaltyEmu.Database\SaltyEmu.Database.MSSQL.csproj" />
</ItemGroup>
5 changes: 2 additions & 3 deletions src/Plugins/NosSharp.Pathfinder/PathfinderPlugin.cs
Original file line number Diff line number Diff line change
@@ -10,15 +10,14 @@ namespace SaltyEmu.PathfinderPlugin
{
public class PathfinderPlugin : IPlugin
{
private static readonly Logger Log = Logger.GetLogger<PathfinderPlugin>();
public PluginEnableTime EnableTime => PluginEnableTime.PostContainerBuild;
public string Name => nameof(PathfinderPlugin);

public void OnLoad()
{
Log.Info("Loading...");
//Log.Info("Loading...");
ChickenContainer.Builder.Register(s => new Pathfinder()).As<IPathfinder>();
Log.Info("Loaded !");
// Log.Info("Loaded !");
}

public void ReloadConfig()
10 changes: 4 additions & 6 deletions src/Plugins/NosSharp.RedisSessionPlugin/RedisPlugin.cs
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
using System;
using Autofac;
using ChickenAPI.Core.Configurations;
using ChickenAPI.Core.i18n;
using ChickenAPI.Core.IoC;
using ChickenAPI.Core.Logging;
using ChickenAPI.Core.Plugins;
using ChickenAPI.Core.Utils;
using ChickenAPI.Data.Server;
using ChickenAPI.Game._i18n;
using ChickenAPI.Game.Impl;
using SaltyEmu.Redis;
using SaltyEmu.RedisWrappers.Redis;

namespace SaltyEmu.RedisWrappers
{
public class RedisPlugin : IPlugin
{
private static readonly Logger Log = Logger.GetLogger<RedisPlugin>();
private readonly string _configurationPath = $"plugins/config/{nameof(RedisPlugin)}/conf.json";
private RedisConfiguration _configuration;
public PluginEnableTime EnableTime => PluginEnableTime.PreContainerBuild;
@@ -32,14 +33,11 @@ public void OnEnable()

public void OnLoad()
{
Log.Info("Loading...");
_configuration = ConfigurationHelper.Load<RedisConfiguration>(_configurationPath, true);
IConfigurationManager conf = new ConfigurationHelper(new JsonConfigurationSerializer());
_configuration = conf.Load<RedisConfiguration>(_configurationPath, true);
ChickenContainer.Builder.Register(s => new RedisSessionService(_configuration)).As<ISessionService>();
Log.Info("ISessionService registered !");
ChickenContainer.Builder.Register(s => new RedisServerApi(_configuration)).As<IServerApiService>();
Log.Info("IServerApiService registered !");
ChickenContainer.Builder.Register(s => new RedisGameLanguageService(_configuration)).As<IGameLanguageService>();
Log.Info("IGameLanguageService registered !");
}

public void ReloadConfig()
Original file line number Diff line number Diff line change
@@ -11,11 +11,12 @@ namespace SaltyEmu.RedisWrappers
{
public class RedisSessionService : ISessionService
{
private readonly Logger _log = Logger.GetLogger<RedisPlugin>();
private readonly ILogger _log;
private readonly IRedisTypedClient<PlayerSessionDto> _client;

public RedisSessionService(RedisConfiguration configuration)
public RedisSessionService(RedisConfiguration configuration, ILogger log)
{
_log = log;
_client = new RedisClient(new RedisEndpoint
{
Host = configuration.Host,
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\ChickenAPI.Game.Impl\ChickenAPI.Game.Impl.csproj" />
<ProjectReference Include="..\..\ChickenAPI.Game\ChickenAPI.Game.csproj" />
<ProjectReference Include="..\..\libs\SaltyEmu.Redis\SaltyEmu.Redis.csproj" />
</ItemGroup>
Original file line number Diff line number Diff line change
@@ -13,12 +13,12 @@ namespace SaltyEmu.BasicPlugin.BCardHandlers
{
public class BasicBCardHandlerContainer : IBCardHandlerContainer
{
private static readonly Logger Log = Logger.GetLogger<BasicBCardHandlerContainer>();

private readonly ILogger _log;
protected readonly Dictionary<BCardType, IBCardEffectHandler> Useitem = new Dictionary<BCardType, IBCardEffectHandler>();

public BasicBCardHandlerContainer()
public BasicBCardHandlerContainer(ILogger log)
{
_log = log;
Assembly currentAsm = Assembly.GetAssembly(typeof(BasicPlugin));
// get types
foreach (Type type in currentAsm.GetTypes().Where(s => s.GetMethods().Any(m => m.GetCustomAttribute<BCardEffectHandlerAttribute>() != null)))
@@ -39,23 +39,24 @@ public void Register(IBCardEffectHandler handler)
}

Useitem.Add(handler.HandledType, handler);
Log.Info($"[REGISTER_HANDLER] BCARD_TYPE : {handler.HandledType} REGISTERED !");
_log.Info($"[REGISTER_HANDLER] BCARD_TYPE : {handler.HandledType} REGISTERED !");
}

public Task Handle(IBattleEntity target, IBattleEntity sender, BCardDto bcard)
public async Task Handle(IBattleEntity target, IBattleEntity sender, BCardDto bcard)
{
if (target == null)
{
return Task.CompletedTask;
return;
}
Log.Info($"Trying to cast Bcard id : {bcard.Id} : {bcard.Type}");

_log.Info($"Trying to cast Bcard id : {bcard.Id} : {bcard.Type}");

if (!Useitem.TryGetValue(bcard.Type, out IBCardEffectHandler handler))
{
return Task.CompletedTask;
return;
}

return handler.Handle(target, sender, bcard);
await handler.Handle(target, sender, bcard);
}
}
}
5 changes: 2 additions & 3 deletions src/Plugins/NosSharp.TemporaryMapPlugins/BasicPlugin.cs
Original file line number Diff line number Diff line change
@@ -5,7 +5,6 @@ namespace SaltyEmu.BasicPlugin
{
public class BasicPlugin : IPlugin
{
private static readonly Logger Log = Logger.GetLogger<BasicPlugin>();
public PluginEnableTime EnableTime => PluginEnableTime.PostContainerBuild;
public string Name => nameof(BasicPlugin);

@@ -23,9 +22,9 @@ public void OnEnable()

public void OnLoad()
{
Log.Info("Loading...");
// Log.Info("Loading...");
BasicPluginIoCInjector.InjectDependencies();
Log.Info("Loaded !");
// Log.Info("Loaded !");
}

public void ReloadConfig()
16 changes: 5 additions & 11 deletions src/Plugins/NosSharp.TemporaryMapPlugins/BasicPluginIoCInjector.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using Autofac;
using ChickenAPI.Core.Configurations;
using ChickenAPI.Core.Events;
@@ -9,29 +8,24 @@
using ChickenAPI.Core.Utils;
using ChickenAPI.Data.BCard;
using ChickenAPI.Data.Item;
using ChickenAPI.Game;
using ChickenAPI.Game.Battle.Hitting;
using ChickenAPI.Game.Battle.Interfaces;
using ChickenAPI.Game.BCards;
using ChickenAPI.Game.Configuration;
using ChickenAPI.Game.Entities;
using ChickenAPI.Game.Groups;
using ChickenAPI.Game.GuriHandling.Handling;
using ChickenAPI.Game.Inventory.ItemUpgrade;
using ChickenAPI.Game.Inventory.ItemUpgrade.Handlers.Handling;
using ChickenAPI.Game.Inventory.ItemUsage;
using ChickenAPI.Game.Managers;
using ChickenAPI.Game.NpcDialog;
using ChickenAPI.Game._ECS;
using ChickenAPI.Game._Network;
using Newtonsoft.Json;
using ChickenAPI.Game.Impl;
using SaltyEmu.BasicPlugin.BCardHandlers;
using SaltyEmu.BasicPlugin.EventHandlers.Battle;
using SaltyEmu.BasicPlugin.EventHandlers.Guri;
using SaltyEmu.BasicPlugin.Implems;
using SaltyEmu.BasicPlugin.ItemUpgradeHandlers;
using SaltyEmu.BasicPlugin.ItemUsageHandlers;
using SaltyEmu.BasicPlugin.NpcDialogHandlers;
using SaltyEmu.Commands;
using SaltyEmu.Commands.Interfaces;

@@ -138,22 +132,22 @@ public static void InjectDependencies()
ChickenContainer.Builder.RegisterType<LazyMapManager>().AsImplementedInterfaces().PropertiesAutowired().SingleInstance();

// bcard
ChickenContainer.Builder.Register(_ => new BasicBCardHandlerContainer()).As<IBCardHandlerContainer>().SingleInstance();
ChickenContainer.Builder.Register(_ => new BasicBCardHandlerContainer(_.Resolve<ILogger>())).As<IBCardHandlerContainer>().SingleInstance();

ChickenContainer.Builder.Register(c => new SimpleItemInstanceDtoFactory(c.Resolve<IItemService>())).As<IItemInstanceDtoFactory>().InstancePerDependency();
ChickenContainer.Builder.Register(_ => new RandomGenerator()).As<IRandomGenerator>().InstancePerDependency();

ChickenContainer.Builder.Register(_ => new BaseGuriHandler()).As<IGuriHandler>().SingleInstance();
ChickenContainer.Builder.Register(_ => new BaseGuriHandler(_.Resolve<ILogger>())).As<IGuriHandler>().SingleInstance();
// item usage
ChickenContainer.Builder.Register(_ => new UseItemHandlerContainer()).As<IItemUsageContainerAsync>().SingleInstance();
ChickenContainer.Builder.Register(s => new UseItemHandlerContainer(s.Resolve<ILogger>())).As<IItemUsageContainerAsync>().SingleInstance();
// npc dialog
ChickenContainer.Builder.Register(_ => new NpcDialogHandlerContainer()).As<INpcDialogHandlerContainer>().SingleInstance();
// entityManagerContainer
ChickenContainer.Builder.Register(_ => new SimpleEntityManagerContainer()).As<IEntityManagerContainer>().SingleInstance();
// player manager
ChickenContainer.Builder.Register(_ => new SimplePlayerManager()).As<IPlayerManager>().SingleInstance();
ChickenContainer.Builder.Register(context => new CommandHandler(context.Resolve<ILogger>())).As<ICommandContainer>().SingleInstance();
ChickenContainer.Builder.Register(_ => new BasicUpgradeHandler()).As<IItemUpgradeHandler>().SingleInstance();
ChickenContainer.Builder.Register(s => new BasicUpgradeHandler(s.Resolve<ILogger>())).As<IItemUpgradeHandler>().SingleInstance();
}
}
}
Original file line number Diff line number Diff line change
@@ -3,12 +3,17 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Game.Battle.Events;

namespace SaltyEmu.BasicPlugin.EventHandlers.Battle
{
public class BattleEntity_AddBuff_Handler : GenericEventPostProcessorBase<BattleEntityAddBuffEvent>
{
public BattleEntity_AddBuff_Handler(ILogger log) : base(log)
{
}

protected override Task Handle(BattleEntityAddBuffEvent e, CancellationToken cancellation)
{
return Task.CompletedTask;
@@ -17,6 +22,10 @@ protected override Task Handle(BattleEntityAddBuffEvent e, CancellationToken can

public class BattleEntity_RemoveBuff_Handler : GenericEventPostProcessorBase<BattleEntityRemoveBuffEvent>
{
public BattleEntity_RemoveBuff_Handler(ILogger log) : base(log)
{
}

protected override Task Handle(BattleEntityRemoveBuffEvent e, CancellationToken cancellation)
{
return Task.CompletedTask;
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Game.Chat.Events;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Packets.Enumerations;
using ChickenAPI.Packets.ServerPackets.Chats;

namespace SaltyEmu.BasicPlugin.EventHandlers.Chat
{

public class PlayerChatEventHandler : GenericEventPostProcessorBase<ChatGeneralEvent>
{
public PlayerChatEventHandler(ILogger log) : base(log)
{
}

protected override async Task Handle(ChatGeneralEvent e, CancellationToken cancellation)
{
var sayPacket = new SayPacket
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Game.Effects;
using ChickenAPI.Game.Effects.Events;

namespace SaltyEmu.BasicPlugin.EventHandlers.Effects
{
public class AddEffectHandler : GenericEventPostProcessorBase<AddEffectEvent>
{
public AddEffectHandler(ILogger log) : base(log)
{
}

protected override Task Handle(AddEffectEvent e, CancellationToken cancellation)
{
var effects = e.Sender.GetComponent<EffectComponent>();
@@ -18,7 +23,7 @@ protected override Task Handle(AddEffectEvent e, CancellationToken cancellation)
e.Sender.AddComponent(effects);
}

effects.Effects.Add(new EffectComponent.Effect(e.EffectId, e.Cooldown));
effects.Effects.Add(new EffectComponent.Effect((int)e.EffectId, e.Cooldown));
return Task.CompletedTask;
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Data.Character;
using ChickenAPI.Data.Families;
using ChickenAPI.Enums.Game.Character;
using ChickenAPI.Enums.Game.Families;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Families.Events;
using ChickenAPI.Game.Families.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Family
{
@@ -16,10 +17,11 @@ public class Family_Creation_Handler : GenericEventPostProcessorBase<FamilyCreat
private readonly ICharacterFamilyService _characterFamilyService;
private readonly IFamilyService _familyService;

public Family_Creation_Handler(IFamilyService familyService, ICharacterFamilyService characterFamilyService)

public Family_Creation_Handler(ILogger log, ICharacterFamilyService characterFamilyService, IFamilyService familyService) : base(log)
{
_familyService = familyService;
_characterFamilyService = characterFamilyService;
_familyService = familyService;
}

protected override async Task Handle(FamilyCreationEvent e, CancellationToken cancellation)
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Data.Character;
using ChickenAPI.Data.Families;
using ChickenAPI.Enums.Game.Families;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Families.Events;
using ChickenAPI.Game.Families.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Family
{
public class Family_Join_Handler : GenericEventPostProcessorBase<FamilyJoinEvent>
{
private readonly ICharacterFamilyService _characterFamilyService;

public Family_Join_Handler(ICharacterFamilyService characterFamilyService)
{
_characterFamilyService = characterFamilyService;
}
public Family_Join_Handler(ILogger log, ICharacterFamilyService characterFamilyService) : base(log) => _characterFamilyService = characterFamilyService;

protected override async Task Handle(FamilyJoinEvent e, CancellationToken cancellation)
{
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
using ChickenAPI.Game.Groups.Events;
using ChickenAPI.Game.Helpers;
using ChickenAPI.Game._i18n;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers
{
Original file line number Diff line number Diff line change
@@ -11,11 +11,12 @@ namespace SaltyEmu.BasicPlugin.EventHandlers.Guri
{
public class BaseGuriHandler : IGuriHandler
{
private static readonly Logger Log = Logger.GetLogger<BaseGuriHandler>();
private readonly ILogger _log;
protected readonly Dictionary<long, GuriRequestHandler> HandlersByDialogId;

public BaseGuriHandler()
public BaseGuriHandler(ILogger log)
{
_log = log;
HandlersByDialogId = new Dictionary<long, GuriRequestHandler>();
Assembly currentAsm = Assembly.GetAssembly(typeof(BasicPlugin));
// get types
@@ -36,7 +37,7 @@ public void Register(GuriRequestHandler handler)
return;
}

Log.Info($"[REGISTER_HANDLER] GURI_EFFECT : {handler.GuriEffectId} REGISTERED !");
_log.Info($"[REGISTER_HANDLER] GURI_EFFECT : {handler.GuriEffectId} REGISTERED !");
HandlersByDialogId.Add(handler.GuriEffectId, handler);
}

Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Data.Item;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Entities.Player.Extensions;
using ChickenAPI.Game.Helpers;
using ChickenAPI.Game.Inventory;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Inventory
{
public class Inventory_DestroyItem_Handler : GenericEventPostProcessorBase<InventoryDestroyItemEvent>
{
public Inventory_DestroyItem_Handler(ILogger log) : base(log)
{
}

protected override async Task Handle(InventoryDestroyItemEvent e, CancellationToken cancellation)
{
if (!(e.Sender is IPlayerEntity player))
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Inventory;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Inventory
{
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@
using ChickenAPI.Game.Inventory;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Inventory
{
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Inventory
{
Original file line number Diff line number Diff line change
@@ -10,6 +10,8 @@
using ChickenAPI.Game.Inventory;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Packets.Enumerations;
using EquipmentType = ChickenAPI.Enums.Game.Items.EquipmentType;

namespace SaltyEmu.BasicPlugin.EventHandlers.Inventory
{
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Game.Maps.Events;
using ChickenAPI.Game._BroadcastRules;
using ChickenAPI.Packets.Old.Game.Server.Map;
using ChickenAPI.Packets.ServerPackets.Map;

namespace SaltyEmu.BasicPlugin.EventHandlers.Maps
{
public class Map_Leave_Handler : GenericEventPostProcessorBase<MapLeaveEvent>
{
public Map_Leave_Handler(ILogger log) : base(log)
{
}

protected override async Task Handle(MapLeaveEvent e, CancellationToken cancellation)
{
if (e.Sender is IPlayerEntity session)
{
await session.SendPacketAsync(new MapoutPacket());
await session.SendPacketAsync(new MapOutPacket());
await e.Map.BroadcastAsync(e.Sender.GenerateOutPacket(), new AllExpectOne(session));
return;
}
Original file line number Diff line number Diff line change
@@ -22,10 +22,10 @@ public class PetEventHandler : GenericEventPostProcessorBase<AddPetEvent>
private readonly IGameEntityFactory _entityFactory;
private readonly INpcMonsterService _npcMonsterService;

public PetEventHandler(INpcMonsterService npcMonsterService, IGameEntityFactory entityFactory)
public PetEventHandler(ILogger log, IGameEntityFactory entityFactory, INpcMonsterService npcMonsterService) : base(log)
{
_npcMonsterService = npcMonsterService;
_entityFactory = entityFactory;
_npcMonsterService = npcMonsterService;
}

public static void AddPet(IPlayerEntity player, AddPetEvent e)
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Entities.Player.Events;
using ChickenAPI.Game.Entities.Player.Extensions;
@@ -9,6 +10,10 @@ namespace SaltyEmu.BasicPlugin.EventHandlers
{
public class Player_ExperienceGain_Handler : GenericEventPostProcessorBase<ExperienceGainEvent>
{
public Player_ExperienceGain_Handler(ILogger log) : base(log)
{
}

protected override async Task Handle(ExperienceGainEvent e, CancellationToken cancellation)
{
if (!(e.Sender is IPlayerEntity player))
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@
using ChickenAPI.Game.Entities.Player.Events;
using ChickenAPI.Game.Entities.Player.Extensions;
using ChickenAPI.Game.Skills.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers
{
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.i18n;
using ChickenAPI.Core.Logging;
using ChickenAPI.Data.Character;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Entities.Player.Extensions;
@@ -10,7 +11,8 @@
using ChickenAPI.Game.Relations.Events;
using ChickenAPI.Game._i18n;
using ChickenAPI.Packets;
using ChickenAPI.Packets.Old.Game.Server.Relations;
using ChickenAPI.Packets.ClientPackets.Relations;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Relations
{
@@ -19,10 +21,10 @@ public class Relation_InvitationReceive_Handler : GenericEventPostProcessorBase<
private readonly IPlayerManager _playerManager;
private readonly ICharacterService _characterService;

public Relation_InvitationReceive_Handler(ICharacterService characterService, IPlayerManager playerManager)
public Relation_InvitationReceive_Handler(ILogger log, IPlayerManager playerManager, ICharacterService characterService) : base(log)
{
_characterService = characterService;
_playerManager = playerManager;
_characterService = characterService;
}

protected override async Task Handle(RelationInvitationReceiveEvent e, CancellationToken cancellation)
@@ -48,8 +50,8 @@ protected override async Task Handle(RelationInvitationReceiveEvent e, Cancellat
senderInfo = target.Character;
}

PacketBase acceptPacket = new FInsPacket { CharacterId = e.Invitation.OwnerId, Type = FInsPacketType.Accept };
PacketBase refusePacket = new FInsPacket { CharacterId = e.Invitation.OwnerId, Type = FInsPacketType.Refuse };
PacketBase acceptPacket = new FinsPacket { CharacterId = e.Invitation.OwnerId, Type = FinsPacketType.Accepted };
PacketBase refusePacket = new FinsPacket { CharacterId = e.Invitation.OwnerId, Type = FinsPacketType.Rejected };
string question = player.GetLanguageFormat(PlayerMessages.FRIEND_X_INVITED_YOU_TO_JOIN_HIS_FRIENDLIST, senderInfo.Name);
await player.SendDialog(acceptPacket, refusePacket, question);
}
Original file line number Diff line number Diff line change
@@ -6,7 +6,9 @@
using ChickenAPI.Game.Entities.Npc.Extensions;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Entities.Player.Extensions;
using ChickenAPI.Game.Extensions.PacketGeneration;
using ChickenAPI.Game.Managers;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers
{
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
using ChickenAPI.Core.Events;
using ChickenAPI.Core.i18n;
using ChickenAPI.Core.IoC;
using ChickenAPI.Core.Logging;
using ChickenAPI.Core.Maths;
using ChickenAPI.Data.Character;
using ChickenAPI.Data.Item;
@@ -31,10 +32,8 @@ public class Shop_Buy_Event : GenericEventPostProcessorBase<ShopBuyEvent>
{
private readonly IRandomGenerator _randomGenerator;

public Shop_Buy_Event(IRandomGenerator randomGenerator)
{
_randomGenerator = randomGenerator;
}

public Shop_Buy_Event(ILogger log, IRandomGenerator randomGenerator) : base(log) => _randomGenerator = randomGenerator;

protected override async Task Handle(ShopBuyEvent e, CancellationToken cancellation)
{
@@ -97,13 +96,13 @@ private static async Task HandleNpcSkillBuyRequest(IPlayerEntity player, ShopBuy
}

// check skill cooldown
if (player.SkillComponent.CooldownsBySkillId.Any(s => s.Item2 == shopBuy.Slot))
if (player.CooldownsBySkillId.Any(s => s.Item2 == shopBuy.Slot))
{
return;
}

// check skill already exists in player skills
if (player.SkillComponent.Skills.ContainsKey(shopBuy.Slot))
if (player.Skills.ContainsKey(shopBuy.Slot))
{
return;
}
@@ -149,9 +148,6 @@ private static async Task HandleNpcSkillBuyRequest(IPlayerEntity player, ShopBuy
case CharacterClassType.MartialArtist:
minimumLevel = skillShop.Skill.MinimumWrestlerLevel;
break;

case CharacterClassType.Unknown:
break;
}

if (skillShop.Skill.MinimumSwordmanLevel == 0 && skillShop.Skill.MinimumArcherLevel == 0 && skillShop.Skill.MinimumMagicianLevel == 0)
@@ -179,11 +175,11 @@ private static async Task HandleNpcSkillBuyRequest(IPlayerEntity player, ShopBuy

if (skillShop.SkillId < 200)
{
foreach (CharacterSkillDto skill in player.SkillComponent.CharacterSkills.Select(s => s.Value))
foreach (CharacterSkillDto skill in player.CharacterSkills.Select(s => s.Value))
{
if (skillShop.Skill.CastId == skill.Skill.CastId && skill.Skill.Id < 200)
{
player.SkillComponent.CharacterSkills.Remove(skill.Id);
player.CharacterSkills.Remove(skill.Id);
}
}
}
@@ -192,11 +188,11 @@ private static async Task HandleNpcSkillBuyRequest(IPlayerEntity player, ShopBuy
// remove old upgrade
if (skillShop.SkillId >= 200 && skillShop.Skill.UpgradeSkill != 0)
{
CharacterSkillDto oldupgrade = player.SkillComponent.CharacterSkills.FirstOrDefault(s =>
CharacterSkillDto oldupgrade = player.CharacterSkills.FirstOrDefault(s =>
s.Value.Skill.UpgradeSkill == skillShop.Skill.UpgradeSkill && s.Value.Skill.UpgradeType == skillShop.Skill.UpgradeType && s.Value.Skill.UpgradeSkill != 0).Value;
if (oldupgrade != null)
{
player.SkillComponent.CharacterSkills.Remove(oldupgrade.Id);
player.CharacterSkills.Remove(oldupgrade.Id);
}
}

@@ -255,15 +251,15 @@ private async Task HandleNpcItemBuyRequest(IPlayerEntity player, ShopBuyEvent sh

if (!isReputBuy && price < 0 && price * percent > player.Character.Gold)
{
await player.SendPacketAsync(player.GenerateShopMemoPacket(SMemoPacketType.FailNpc, player.GetLanguage(PlayerMessages.YOU_DONT_HAVE_ENOUGH_GOLD)));
await player.SendPacketAsync(player.GenerateShopMemoPacket(SMemoType.Error, player.GetLanguage(PlayerMessages.YOU_DONT_HAVE_ENOUGH_GOLD)));
return;
}

if (isReputBuy)
{
if (price > player.Character.Reput)
{
await player.SendPacketAsync(player.GenerateShopMemoPacket(SMemoPacketType.FailNpc, player.GetLanguage(PlayerMessages.YOU_DONT_HAVE_ENOUGH_REPUTATION)));
await player.SendPacketAsync(player.GenerateShopMemoPacket(SMemoType.Error, player.GetLanguage(PlayerMessages.YOU_DONT_HAVE_ENOUGH_REPUTATION)));
return;
}

@@ -288,7 +284,7 @@ private async Task HandleNpcItemBuyRequest(IPlayerEntity player, ShopBuyEvent sh
bool canAddItem = player.Inventory.CanAddItem(item.Item, amount);
if (!canAddItem)
{
await player.SendPacketAsync(player.GenerateShopMemoPacket(SMemoPacketType.FailNpc, player.GetLanguage(PlayerMessages.YOU_DONT_HAVE_ENOUGH_SPACE_IN_INVENTORY)));
await player.SendPacketAsync(player.GenerateShopMemoPacket(SMemoType.Error, player.GetLanguage(PlayerMessages.YOU_DONT_HAVE_ENOUGH_SPACE_IN_INVENTORY)));
return;
}

Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
using ChickenAPI.Game.Entities.Player.Extensions;
using ChickenAPI.Game.Skills;
using ChickenAPI.Game.Skills.Args;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Skills
{
@@ -20,12 +21,12 @@ protected override async Task Handle(PlayerAddSkillEvent e, CancellationToken ca
return;
}

SkillComponent component = player.SkillComponent;
if (e.Skill is null)
{
return; //the skill doesn't exist?
}


if (e.ForceChecks)
{
if (player.Character is null)
@@ -75,10 +76,6 @@ protected override async Task Handle(PlayerAddSkillEvent e, CancellationToken ca
case CharacterClassType.MartialArtist:
classLevel = e.Skill.MinimumWrestlerLevel;
break;

case CharacterClassType.Unknown:
classLevel = e.Skill.LevelMinimum;
break;
}

if (classLevel > player.Level)
@@ -89,38 +86,38 @@ protected override async Task Handle(PlayerAddSkillEvent e, CancellationToken ca

if (e.Skill.Id < 200)
{
foreach (SkillDto skill in component.Skills.Values)
foreach (SkillDto skill in player.Skills.Values)
{
if (e.Skill.CastId == skill.CastId && skill.Id < 200)
{
component.Skills.Remove(skill.Id);
player.Skills.Remove(skill.Id);
}
}
}
else
{
if (component.Skills.ContainsKey(e.Skill.Id))
if (player.Skills.ContainsKey(e.Skill.Id))
{
return; //we already have that skill!
}

if (e.Skill.UpgradeSkill != 0) //means it's not a skill but an upgrade
{
SkillDto oldUpgrade = component.Skills.Values.FirstOrDefault(
SkillDto oldUpgrade = player.Skills.Values.FirstOrDefault(
s => s.UpgradeSkill == e.Skill.UpgradeSkill &&
s.UpgradeType == e.Skill.UpgradeType &&
s.UpgradeSkill != 0);

if (!(oldUpgrade is null))
{
component.Skills.Remove(oldUpgrade.Id);
player.Skills.Remove(oldUpgrade.Id);
}
}
}

if (!component.Skills.ContainsKey(e.Skill.Id))
if (!player.Skills.ContainsKey(e.Skill.Id))
{
component.Skills.Add(e.Skill.Id, e.Skill);
player.Skills.Add(e.Skill.Id, e.Skill);
}

//todo: send different packets to add the skill.
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Data.Skills;
using ChickenAPI.Enums.Game.Entity;
using ChickenAPI.Enums.Game.Skill;
@@ -13,17 +14,16 @@
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Movements.Extensions;
using ChickenAPI.Game.Skills.Args;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.EventHandlers.Skills
{
public class Skill_UseSkill_Handler : GenericEventPostProcessorBase<UseSkillEvent>
{
private readonly IHitRequestFactory _hitRequestFactory;

public Skill_UseSkill_Handler(IHitRequestFactory hitRequestFactory)
{
_hitRequestFactory = hitRequestFactory;
}

public Skill_UseSkill_Handler(ILogger log, IHitRequestFactory hitRequestFactory) : base(log) => _hitRequestFactory = hitRequestFactory;

protected override async Task Handle(UseSkillEvent e, CancellationToken cancellation)
{
Original file line number Diff line number Diff line change
@@ -22,6 +22,7 @@
using ChickenAPI.Game.Skills.Extensions;
using ChickenAPI.Game.Specialists.Args;
using ChickenAPI.Game.Specialists.Extensions;
using ChickenAPI.Packets.ClientPackets.Specialists;
using ChickenAPI.Packets.Enumerations;
using EquipmentType = ChickenAPI.Enums.Game.Items.EquipmentType;

@@ -78,7 +79,7 @@ protected override async Task Handle(SpTransformEvent e, CancellationToken cance

if (e.Wait)
{
await player.SendDelayAsync(5000, DelayPacketType.Locomotion, $"#sl^0");
await player.SendDelayAsync(5000, DelayPacketType.Locomotion, new SpTransformPacket());
return;
}

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Data.Item;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Entities.Player.Extensions;
@@ -13,6 +14,10 @@ namespace SaltyEmu.BasicPlugin.EventHandlers
{
public class Upgrading_Celloning_Handler : GenericEventPostProcessorBase<CellonItemEvent>
{
public Upgrading_Celloning_Handler(ILogger log) : base(log)
{
}

protected override async Task Handle(CellonItemEvent e, CancellationToken cancellation)
{
if (!(e.Sender is IPlayerEntity player))
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using ChickenAPI.Core.Events;
using ChickenAPI.Core.Logging;
using ChickenAPI.Core.Maths;
using ChickenAPI.Game;
using ChickenAPI.Game.Configuration;
@@ -10,8 +11,8 @@
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Game.Inventory.ItemUpgrade.Events;
using ChickenAPI.Game.Shops.Extensions;
using ChickenAPI.Packets.ClientPackets.Inventory;
using ChickenAPI.Packets.Enumerations;
using ChickenAPI.Packets.Old.Game.Client.Inventory;

namespace SaltyEmu.BasicPlugin.EventHandlers
{
@@ -20,10 +21,11 @@ public class Upgrading_Summing_Handler : GenericEventPostProcessorBase<SummingEv
private readonly IGameConfiguration _configuration;
private readonly IRandomGenerator _random;

public Upgrading_Summing_Handler(IRandomGenerator random, IGameConfiguration configuration)

public Upgrading_Summing_Handler(ILogger log, IGameConfiguration configuration, IRandomGenerator random) : base(log)
{
_random = random;
_configuration = configuration;
_random = random;
}

protected override async Task Handle(SummingEvent e, CancellationToken cancellation)
@@ -45,7 +47,7 @@ protected override async Task Handle(SummingEvent e, CancellationToken cancellat
e.Item.WaterResistance += (short)(e.SecondItem.WaterResistance + e.SecondItem.Item.WaterResistance);
e.Item.FireResistance += (short)(e.SecondItem.FireResistance + e.SecondItem.Item.FireResistance);
//session.Character.DeleteItemByItemInstanceId(itemToSum.Id);
await player.SendPacketAsync(new PdtiPacket { Unknow = 10, Unknow2 = 1, Unknow3 = 27, Unknow4 = 0, ItemVnum = e.Item.Item.Id, ItemUpgrade = e.Item.Sum });
await player.SendPacketAsync(new PdtiPacket { Unknow = 10, RecipeAmount = 1, Unknow3 = 27, Unknow4 = 0, ItemVnum = e.Item.Item.Id, ItemUpgrade = e.Item.Sum });
await player.SendChatMessageAsync("SUM_SUCCESS", SayColorType.Green);
await player.SendTopscreenMessage("SUM_SUCCESS", MessageType.Whisper);
await player.SendGuri(GuriPacketType.AfterSumming, 1, 1324);
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ namespace SaltyEmu.BasicPlugin.GuriHandlers
{
public class EmoticonGuriHandler
{
private static readonly Logger Log = Logger.GetLogger<EmoticonGuriHandler>();
// private static readonly Logger Log = Logger.GetLogger<EmoticonGuriHandler>();

/// <summary>
/// This method will teleport the requester to Act 6
@@ -28,7 +28,7 @@ public static void OnEmoticonRequest(IPlayerEntity player, GuriEvent e)
// todo receiver type
player.BroadcastAsync(player.EmojiToEffectPacket((EmojiType)e.Data)).ConfigureAwait(false).GetAwaiter().GetResult();

Log.Info($"[GURI][EMOTICON] {player.Character.Name} used emoji : ");
// Log.Info($"[GURI][EMOTICON] {player.Character.Name} used emoji : ");
}
}
}
Original file line number Diff line number Diff line change
@@ -6,12 +6,13 @@
using ChickenAPI.Game.GuriHandling.Handling;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.Extensions;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.GuriHandlers
{
public class ReleasePetsHandler
{
private static readonly Logger Log = Logger.GetLogger<EmoticonGuriHandler>();
// private static readonly Logger Log = Logger.GetLogger<EmoticonGuriHandler>();

/// <summary>
/// This method will teleport the requester to Act 6
@@ -40,7 +41,7 @@ public static void ReleasePets(IPlayerEntity player, GuriEvent e)
Option = 50
});

Log.Info($"[GURI][RELEASE_PETS] {player.Character.Name} used Pearl : ");
// Log.Info($"[GURI][RELEASE_PETS] {player.Character.Name} used Pearl : ");
}
}
}
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ namespace SaltyEmu.BasicPlugin.GuriHandlers
{
public class ShellIdentifyingGuriHandler
{
private static readonly Logger Log = Logger.GetLogger<ShellIdentifyingGuriHandler>();
// private static readonly Logger Log = Logger.GetLogger<ShellIdentifyingGuriHandler>();

/// <summary>
/// This method will teleport the requester to Act 6
@@ -18,7 +18,7 @@ public class ShellIdentifyingGuriHandler
[GuriEffect(204)]
public static void OnShellIdentifyRequest(IPlayerEntity player, GuriEvent e)
{
Log.Info($"[GURI][SHELL_IDENTIFY] {player.Character.Name} identified shell : ");
// Log.Info($"[GURI][SHELL_IDENTIFY] {player.Character.Name} identified shell : ");
}
}
}
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ namespace SaltyEmu.BasicPlugin.ItemUpgradeHandlers
{
public class RarifyItemHandler
{
private static readonly Logger Log = Logger.GetLogger<RarifyItemHandler>();
// private static readonly Logger Log = Logger.GetLogger<RarifyItemHandler>();

[ItemUpgradeHandler(UpgradePacketType.RarifyItem)]
public static void RarifyNpc(IPlayerEntity player, ItemUpgradeEvent e)
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.ItemUsage;
using ChickenAPI.Game.Mates.Events;
using ChickenAPI.Packets.ClientPackets.Player;

namespace SaltyEmu.BasicPlugin.ItemUsageHandlers.Handler.BoxItem
{
Original file line number Diff line number Diff line change
@@ -6,13 +6,14 @@
using ChickenAPI.Game.Helpers;
using ChickenAPI.Game.Inventory.Events;
using ChickenAPI.Game.Inventory.ItemUsage;
using ChickenAPI.Packets.Old.Game.Client.Inventory;
using ChickenAPI.Packets.ClientPackets.Inventory;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.ItemUsageHandlers.Handler
{
public class WingsSpCardHandler : IUseItemRequestHandlerAsync
{
private static readonly Logger Log = Logger.GetLogger<WingsSpCardHandler>();
// private static readonly Logger Log = Logger.GetLogger<WingsSpCardHandler>();

public ItemType Type => ItemType.Special;
public long EffectId => 650;
@@ -29,14 +30,14 @@ public async Task Handle(IPlayerEntity player, InventoryUseItemEvent e)
return;
}

await player.SendQuestionAsync(new UiPacket
await player.SendQuestionAsync(new UseItemPacket
{
VisualType = VisualType.Player,
CharacterId = player.Id,
InventoryType = e.Item.Type,
InventorySlot = (byte)e.Item.Slot,
Unknown2 = 3,
Unknown3 = 0
VisualId = player.Id,
Type = e.Item.Type,
Slot = (byte)e.Item.Slot,
Parameter = 3,
Mode = 0,
}, "ASK_WINGS_CHANGE");
return;

Original file line number Diff line number Diff line change
@@ -4,12 +4,13 @@
using ChickenAPI.Game.Entities.Player.Extensions;
using ChickenAPI.Game.NpcDialog.Events;
using ChickenAPI.Game.NpcDialog.Handling;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.NpcDialogHandlers
{
public class DialogHandler
{
private static readonly Logger Log = Logger.GetLogger<DialogHandler>();
// private static readonly Logger Log = Logger.GetLogger<DialogHandler>();

[NpcDialogHandler(1)]
public static void ChangeJobMiMi(IPlayerEntity player, NpcDialogEvent args)
@@ -36,7 +37,7 @@ public static void ChangeJobMiMi(IPlayerEntity player, NpcDialogEvent args)
return;
}

player.ChangeClass((CharacterClassType)args.Type);
player.ChangeClass((CharacterClassType)args.Type).ConfigureAwait(false).GetAwaiter().GetResult();
// TODO : LATER
/* if (Session.Character.Inventory.All(i => i.Type == PocketType.Wear))
{
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
using ChickenAPI.Core.Logging;
using ChickenAPI.Enums.Game.Families;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Game.Entities.Player.Extensions;
using ChickenAPI.Game.NpcDialog.Events;
using ChickenAPI.Game.NpcDialog.Handling;
using ChickenAPI.Packets.Enumerations;

namespace SaltyEmu.BasicPlugin.NpcDialogHandlers
{
public class FamilyHandler
{
private static readonly Logger Log = Logger.GetLogger<FamilyHandler>();

[NpcDialogHandler(23)]
public static void CreateFamily(IPlayerEntity player, NpcDialogEvent args)
{
@@ -52,6 +50,7 @@ public static void UpgradeFamilySize2(IPlayerEntity player, NpcDialogEvent args)
{
return;
}

if (player.FamilyCharacter.Authority != FamilyAuthority.Head)
{
/* await session.SendPacketAsync(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("ONLY_HEAD_CAN_BUY"), 10));
@@ -65,6 +64,7 @@ public static void UpgradeFamilySize2(IPlayerEntity player, NpcDialogEvent args)
//await session.SendPacketAsync(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("NOT_ENOUGH_MONEY"), 10));
return;
}

player.GoldLess(10000000);
player.Family.MaxSize = 100;
/*FamilyDTO fam = Session.Character.Family;
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ public async Task Execute(IPlayerEntity player, NpcDialogEvent e)
return;
}

if (player.FamilyCharacter.Authority != ChickenAPI.Enums.Game.Families.FamilyAuthority.Head)
if (player.FamilyCharacter.Authority != FamilyAuthority.Head)
{
await player.SendChatMessageAsync(PlayerMessages.FAMILY_YOU_NEED_TO_BE_LEADER, SayColorType.Yellow);
await player.SendModalAsync(PlayerMessages.FAMILY_YOU_NEED_TO_BE_LEADER, ModalPacketType.Default);
Original file line number Diff line number Diff line change
@@ -10,8 +10,6 @@ namespace SaltyEmu.BasicPlugin.NpcDialogHandlers
{
public class TeleporterHandler
{
private static readonly Logger Log = Logger.GetLogger<TeleporterHandler>();

/// <summary>
/// This method will teleport the requester to Krem or Alveus, depending on which dialog type he choosed
/// </summary>
@@ -28,7 +26,7 @@ public static void OnNpcDialogTeleport(IPlayerEntity player, NpcDialogEvent args
if (player.Character.Gold <= 1000 * args.Type)
{
// No Money -> SendMsg(NOMONEY);
Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
// Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
return;
}

@@ -45,7 +43,7 @@ public static void OnNpcDialogTeleport(IPlayerEntity player, NpcDialogEvent args
break;
}
}

[NpcDialogHandler(17)]
public static void EnterArenaInstance(IPlayerEntity player, NpcDialogEvent args)
{
@@ -71,7 +69,7 @@ public static void EnterArenaInstance(IPlayerEntity player, NpcDialogEvent args)
if (player.Character.Gold <= 500 * 1 * args.Type)
{
// No Money -> SendMsg(NOMONEY);
Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
// Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
return;
}

@@ -93,10 +91,10 @@ public static void EnterArenaInstance(IPlayerEntity player, NpcDialogEvent args)
[NpcDialogHandler(301)]
public static void OnGrahamDialogTeleport(IPlayerEntity player, NpcDialogEvent args)
{
Log.Info($"[TELEPORT][GRAHAM] {player.Character.Name}");
// Log.Info($"[TELEPORT][GRAHAM] {player.Character.Name}");
// need to provide implementation
}

[NpcDialogHandler(26)]
public static void TeleportUnknow(IPlayerEntity player, NpcDialogEvent args)
{
@@ -109,15 +107,15 @@ public static void TeleportUnknow(IPlayerEntity player, NpcDialogEvent args)
if (player.Character.Gold <= 5000 * args.Type)
{
// No Money -> SendMsg(NOMONEY);
Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
// Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
return;
}

player.GoldLess(5000 * args.Type);

//TeleportationHelper.TeleportTo(player, 20, 10, 91);
}

[NpcDialogHandler(45)]
public static void TeleportUnknow2(IPlayerEntity player, NpcDialogEvent args)
{
@@ -130,15 +128,15 @@ public static void TeleportUnknow2(IPlayerEntity player, NpcDialogEvent args)
if (player.Character.Gold <= 500)
{
// No Money -> SendMsg(NOMONEY);
Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
// Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
return;
}

player.GoldLess(500);

player.TeleportTo(20, 10, 91);
}

[NpcDialogHandler(132)]
public static void TeleportUnknow3(IPlayerEntity player, NpcDialogEvent args)
{
@@ -150,7 +148,7 @@ public static void TeleportUnknow3(IPlayerEntity player, NpcDialogEvent args)

//TeleportationHelper.TeleportTo(player, 20, 10, 91);
}

[NpcDialogHandler(301)]
public static void TeleportUnknow4(IPlayerEntity player, NpcDialogEvent args)
{
@@ -162,7 +160,7 @@ public static void TeleportUnknow4(IPlayerEntity player, NpcDialogEvent args)

//TeleportationHelper.TeleportTo(player, 20, 10, 91);
}

[NpcDialogHandler(150)]
public static void EnterLod(IPlayerEntity player, NpcDialogEvent args)
{
@@ -193,19 +191,19 @@ public static void EnterLod(IPlayerEntity player, NpcDialogEvent args)

player.TeleportTo(150, 153, 145);
}

[NpcDialogHandler(5004)]
public static void AlveusFromAct4(IPlayerEntity player, NpcDialogEvent args)
{
player.TeleportTo(145, 50, 41);
}

[NpcDialogHandler(5011)]
public static void GoToAct5(IPlayerEntity player, NpcDialogEvent args)
{
player.TeleportTo(170, 127, 46);
}

[NpcDialogHandler(5012)]
public static void TpUnknow(IPlayerEntity player, NpcDialogEvent args)
{
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@

<ItemGroup>
<ProjectReference Include="..\..\ChickenAPI.Game.Extensions\ChickenAPI.Game.Extensions.csproj" />
<ProjectReference Include="..\..\ChickenAPI.Game.Impl\ChickenAPI.Game.Impl.csproj" />
<ProjectReference Include="..\..\ChickenAPI.Game\ChickenAPI.Game.csproj" />
<ProjectReference Include="..\..\libs\SaltyEmu.Commands\SaltyEmu.Commands.csproj" />
<ProjectReference Include="..\..\libs\SaltyEmu.Communication\SaltyEmu.Communication.csproj" />
2 changes: 1 addition & 1 deletion src/libs/SaltyEmu.Core/Logging/Logger.cs
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ public class Logger : ChickenAPI.Core.Logging.ILogger
public Logger(Type type) => Log = LogManager.GetLogger(type.ToString());
public Logger(string prefix) => Log = LogManager.GetLogger(prefix);

private ILogger Log { get; }
private NLog.ILogger Log { get; }

/// <summary>
/// Initialize logger's configuration.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Threading.Tasks;
using ChickenAPI.Game.Entities.Player;
using ChickenAPI.Packets;
using ChickenAPI.Packets.Interfaces;

namespace SaltyEmu.Core.PacketHandling
{
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Threading.Tasks;
using ChickenAPI.Game._Network;
using ChickenAPI.Packets;
using ChickenAPI.Packets.Interfaces;

namespace SaltyEmu.Core.PacketHandling
{
3 changes: 2 additions & 1 deletion src/libs/SaltyEmu.Core/SaltyEmu.Core.csproj
Original file line number Diff line number Diff line change
@@ -7,10 +7,11 @@
<ItemGroup>
<PackageReference Include="ChickenAPI.Core" Version="1.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="NLog" Version="4.6.2" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\Plugins\NosSharp.DatabasePlugin\SaltyEmu.DatabasePlugin.csproj" />
<ProjectReference Include="..\..\ChickenAPI.Game\ChickenAPI.Game.csproj" />
</ItemGroup>

</Project>
6 changes: 4 additions & 2 deletions src/libs/SaltyEmu.Redis/RedisConfiguration.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
namespace SaltyEmu.Redis
using ChickenAPI.Core.Configurations;

namespace SaltyEmu.Redis
{
public class RedisConfiguration
public class RedisConfiguration : IConfiguration
{
public RedisConfiguration()
{