Warnings fixed: controller as HandlerController warning;

Adding MethodTrace(MethodBase) to get informations about the method. I know it's reflection but it will do for now. Plan is to track down later all the MethodTraces and quickly refactor with nameof instead.
This commit is contained in:
Lucca Faria Ferri 2023-01-28 07:12:08 -08:00
parent fbb3a0295f
commit 2f921d66dc
32 changed files with 271 additions and 233 deletions

View File

@ -175,7 +175,7 @@ namespace DiIiS_NA.LoginServer.AccountsSystem
{ {
var bTag = DBAccount.BattleTagName; var bTag = DBAccount.BattleTagName;
//(controller as HandlerController).Client.Account.GameAccount.ProgramField.Value //((HandlerController) controller).Client.Account.GameAccount.ProgramField.Value
if(GameAccount.ProgramField.Value == "APP") if(GameAccount.ProgramField.Value == "APP")
return bTag; return bTag;

View File

@ -9,6 +9,7 @@ using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Spectre.Console; using Spectre.Console;
@ -132,16 +133,16 @@ namespace DiIiS_NA.LoginServer.AccountsSystem
List<DBAccount> dbAcc = DBSessions.SessionQueryWhere<DBAccount>(dba => dba.Email == email); List<DBAccount> dbAcc = DBSessions.SessionQueryWhere<DBAccount>(dba => dba.Email == email);
if (dbAcc.Count == 0) if (dbAcc.Count == 0)
{ {
Logger.Warn($"$[olive]$GetAccountByEmail(\"{email}\")$[/]$: DBAccount is null!"); Logger.Warn($"DBAccount is null from email {email}!");
return null; return null;
} }
if (dbAcc.First() == null) if (dbAcc.First() == null)
{ {
Logger.Warn($"$[olive]$GetAccountByEmail(\"{email}\")$[/]$: DBAccount id is not null!"); Logger.Warn($"DBAccount is null from email {email}!");
return null; return null;
} }
else
Logger.MethodTrace($"$[olive]$GetAccountByEmail(\"{email}\")$[/]$: id - {dbAcc.First().Id}"); Logger.MethodTrace(MethodBase.GetCurrentMethod(), $"id - {dbAcc.First().Id}");
return GetAccountByDBAccount(dbAcc.First()); return GetAccountByDBAccount(dbAcc.First());
} }
} }

View File

@ -438,8 +438,8 @@ namespace DiIiS_NA.LoginServer.Battle
if (controller is HandlerController) if (controller is HandlerController)
{ {
status = (controller as HandlerController).Status; status = ((HandlerController) controller).Status;
_listenerId = (controller as HandlerController).ListenerId; _listenerId = ((HandlerController) controller).ListenerId;
} }
var serviceId = Services[serviceHash]; var serviceId = Services[serviceHash];

View File

@ -9,6 +9,7 @@ using DiIiS_NA.LoginServer.Objects;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -66,7 +67,7 @@ namespace DiIiS_NA.LoginServer.FriendsSystem
private static void AddIgnoreToDB(Account owner, Account target) private static void AddIgnoreToDB(Account owner, Account target)
{ {
Logger.Trace("AddIgnoreToDB(): owner {0}, target {1}", owner.PersistentID, target.PersistentID); Logger.MethodTrace(MethodBase.GetCurrentMethod(), ": owner {0}, target {1}", owner.PersistentID, target.PersistentID);
try try
{ {
if (DBSessions.SessionQueryWhere<DBAccountLists>(dbl => dbl.ListOwner.Id == owner.PersistentID && dbl.ListTarget.Id == target.PersistentID && dbl.Type == "IGNORE").Count() > 0) return; if (DBSessions.SessionQueryWhere<DBAccountLists>(dbl => dbl.ListOwner.Id == owner.PersistentID && dbl.ListTarget.Id == target.PersistentID && dbl.Type == "IGNORE").Count() > 0) return;
@ -87,7 +88,7 @@ namespace DiIiS_NA.LoginServer.FriendsSystem
private static void RemoveIgnoreFromDB(Account owner, Account target) private static void RemoveIgnoreFromDB(Account owner, Account target)
{ {
Logger.Trace("RemoveIgnoreFromDB(): owner {0}, target {1}", owner.PersistentID, target.PersistentID); Logger.MethodTrace(MethodBase.GetCurrentMethod(), ": owner {0}, target {1}", owner.PersistentID, target.PersistentID);
try try
{ {
var blockRecords = DBSessions.SessionQueryWhere<DBAccountLists>(dbl => dbl.ListOwner.Id == owner.PersistentID && dbl.ListTarget.Id == target.PersistentID && dbl.Type == "IGNORE"); var blockRecords = DBSessions.SessionQueryWhere<DBAccountLists>(dbl => dbl.ListOwner.Id == owner.PersistentID && dbl.ListTarget.Id == target.PersistentID && dbl.Type == "IGNORE");

View File

@ -8,6 +8,7 @@ using DiIiS_NA.LoginServer.Helpers;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -74,7 +75,7 @@ namespace DiIiS_NA.LoginServer.GamesSystem
public void StartGame(List<BattleClient> clients, ulong objectId) public void StartGame(List<BattleClient> clients, ulong objectId)
{ {
Logger.Trace("StartGame(): objectId: {0}", objectId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), ": objectId: {0}", objectId);
var owner = this.Owner.Account.GameAccount.CurrentToon.DBToon; var owner = this.Owner.Account.GameAccount.CurrentToon.DBToon;
if (Program.BattleBackend.GameServers.Count == 0) return; if (Program.BattleBackend.GameServers.Count == 0) return;

View File

@ -20,7 +20,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
GetAccountStateResponse.Builder builder = GetAccountStateResponse.CreateBuilder(); GetAccountStateResponse.Builder builder = GetAccountStateResponse.CreateBuilder();
var AccState = AccountState.CreateBuilder(); var AccState = AccountState.CreateBuilder();
if (request.EntityId.Low == (controller as HandlerController).Client.Account.BnetEntityId.Low) if (request.EntityId.Low == ((HandlerController) controller).Client.Account.BnetEntityId.Low)
{ {
if (request.Options.FieldPrivacyInfo) if (request.Options.FieldPrivacyInfo)
{ {
@ -49,9 +49,9 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
level.SetCountry("RUS"); level.SetCountry("RUS");
level.SetPreferredRegion(1); level.SetPreferredRegion(1);
level.SetFullName("Name LastName"); level.SetFullName("Name LastName");
level.SetBattleTag((controller as HandlerController).Client.Account.BattleTag); level.SetBattleTag(((HandlerController) controller).Client.Account.BattleTag);
level.SetAccountPaidAny(true); level.SetAccountPaidAny(true);
level.SetEmail((controller as HandlerController).Client.Account.Email).SetHeadlessAccount(false); level.SetEmail(((HandlerController) controller).Client.Account.Email).SetHeadlessAccount(false);
AccState.SetAccountLevelInfo(level); AccState.SetAccountLevelInfo(level);

View File

@ -19,9 +19,9 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void Subscribe(Google.ProtocolBuffers.IRpcController controller, SubscribeRequest request, Action<NoData> done) public override void Subscribe(Google.ProtocolBuffers.IRpcController controller, SubscribeRequest request, Action<NoData> done)
{ {
Logger.Trace("Subscribe() {0}", ((controller as HandlerController).Client)); Logger.Trace("Subscribe() {0}", (((HandlerController) controller).Client));
_invitationManager.AddSubscriber(((controller as HandlerController).Client), request.ObjectId); _invitationManager.AddSubscriber((((HandlerController) controller).Client), request.ObjectId);
done(NoData.DefaultInstance); done(NoData.DefaultInstance);
} }
@ -32,7 +32,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var response = AcceptInvitationResponse.CreateBuilder().SetObjectId(channel.DynamicId).Build(); var response = AcceptInvitationResponse.CreateBuilder().SetObjectId(channel.DynamicId).Build();
done(response); done(response);
_invitationManager.HandleAccept(((controller as HandlerController).Client), request); _invitationManager.HandleAccept((((HandlerController) controller).Client), request);
} }
public override void DeclineInvitation(Google.ProtocolBuffers.IRpcController controller, DeclineInvitationRequest request, Action<NoData> done) public override void DeclineInvitation(Google.ProtocolBuffers.IRpcController controller, DeclineInvitationRequest request, Action<NoData> done)
@ -40,7 +40,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var respone = NoData.CreateBuilder(); var respone = NoData.CreateBuilder();
done(respone.Build()); done(respone.Build());
_invitationManager.HandleDecline(((controller as HandlerController).Client), request); _invitationManager.HandleDecline((((HandlerController) controller).Client), request);
} }
public override void RevokeInvitation(Google.ProtocolBuffers.IRpcController controller, RevokeInvitationRequest request, Action<NoData> done) public override void RevokeInvitation(Google.ProtocolBuffers.IRpcController controller, RevokeInvitationRequest request, Action<NoData> done)
@ -48,16 +48,16 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var builder = NoData.CreateBuilder(); var builder = NoData.CreateBuilder();
done(builder.Build()); done(builder.Build());
_invitationManager.Revoke(((controller as HandlerController).Client), request); _invitationManager.Revoke((((HandlerController) controller).Client), request);
} }
public override void SendInvitation(Google.ProtocolBuffers.IRpcController controller, SendInvitationRequest request, Action<NoData> done) public override void SendInvitation(Google.ProtocolBuffers.IRpcController controller, SendInvitationRequest request, Action<NoData> done)
{ {
var invitee = GameAccountManager.GetAccountByPersistentID(request.TargetId.Low); var invitee = GameAccountManager.GetAccountByPersistentID(request.TargetId.Low);
if (invitee.Owner.IgnoreIds.Contains((controller as HandlerController).Client.Account.PersistentID)) if (invitee.Owner.IgnoreIds.Contains(((HandlerController) controller).Client.Account.PersistentID))
{ {
((controller as HandlerController).Status) = 403; (((HandlerController) controller).Status) = 403;
done(NoData.CreateBuilder().Build()); done(NoData.CreateBuilder().Build());
return; return;
} }
@ -82,8 +82,8 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var invitation = Invitation.CreateBuilder(); var invitation = Invitation.CreateBuilder();
invitation.SetId(ChannelInvitationManager.InvitationIdCounter++) invitation.SetId(ChannelInvitationManager.InvitationIdCounter++)
.SetInviterIdentity(Identity.CreateBuilder().SetGameAccountId((controller as HandlerController).Client.Account.GameAccount.BnetEntityId).Build()) .SetInviterIdentity(Identity.CreateBuilder().SetGameAccountId(((HandlerController) controller).Client.Account.GameAccount.BnetEntityId).Build())
.SetInviterName((controller as HandlerController).Client.Account.GameAccount.Owner.BattleTag) .SetInviterName(((HandlerController) controller).Client.Account.GameAccount.Owner.BattleTag)
.SetInviteeIdentity(Identity.CreateBuilder().SetGameAccountId(request.TargetId).Build()) .SetInviteeIdentity(Identity.CreateBuilder().SetGameAccountId(request.TargetId).Build())
.SetInviteeName(invitee.Owner.BattleTag) .SetInviteeName(invitee.Owner.BattleTag)
.SetInvitationMessage(request.Params.InvitationMessage) .SetInvitationMessage(request.Params.InvitationMessage)
@ -101,12 +101,12 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var builder = JoinNotification.CreateBuilder().SetChannelState(ChannelState.CreateBuilder().AddInvitation(invitation.Clone())); var builder = JoinNotification.CreateBuilder().SetChannelState(ChannelState.CreateBuilder().AddInvitation(invitation.Clone()));
(controller as HandlerController).Client.MakeTargetedRPC(channel, (lid) => ChannelListener.CreateStub((controller as HandlerController).Client) ((HandlerController) controller).Client.MakeTargetedRPC(channel, (lid) => ChannelListener.CreateStub(((HandlerController) controller).Client)
.OnUpdateChannelState(controller, notification.Build(), callback => { })); .OnUpdateChannelState(controller, notification.Build(), callback => { }));
(controller as HandlerController).Client.MakeTargetedRPC(channel, (lid) => ((HandlerController) controller).Client.MakeTargetedRPC(channel, (lid) =>
ChannelListener.CreateStub((controller as HandlerController).Client).OnJoin(new HandlerController() { ListenerId = lid }, builder.Build(), callback => { })); ChannelListener.CreateStub(((HandlerController) controller).Client).OnJoin(new HandlerController() { ListenerId = lid }, builder.Build(), callback => { }));
_invitationManager.HandleInvitation((controller as HandlerController).Client, invitation.Build()); _invitationManager.HandleInvitation(((HandlerController) controller).Client, invitation.Build());
} }
@ -118,7 +118,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (suggestee.Owner.IgnoreIds.Contains(suggester.Owner.PersistentID)) if (suggestee.Owner.IgnoreIds.Contains(suggester.Owner.PersistentID))
{ {
((controller as HandlerController).Status) = 403; (((HandlerController) controller).Status) = 403;
done(NoData.CreateBuilder().Build()); done(NoData.CreateBuilder().Build());
return; return;
} }

View File

@ -16,15 +16,15 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void CreateChannel(IRpcController controller, CreateChannelRequest request, Action<CreateChannelResponse> done) public override void CreateChannel(IRpcController controller, CreateChannelRequest request, Action<CreateChannelResponse> done)
{ {
var channel = ChannelManager.CreateNewChannel(((controller as HandlerController).Client), request.ObjectId); var channel = ChannelManager.CreateNewChannel((((HandlerController) controller).Client), request.ObjectId);
var builder = CreateChannelResponse.CreateBuilder() var builder = CreateChannelResponse.CreateBuilder()
.SetObjectId(channel.DynamicId) .SetObjectId(channel.DynamicId)
.SetChannelId(channel.BnetEntityId) .SetChannelId(channel.BnetEntityId)
; ;
done(builder.Build()); done(builder.Build());
channel.SetOwner(((controller as HandlerController).Client)); channel.SetOwner((((HandlerController) controller).Client));
channel.AddMember(((controller as HandlerController).Client)); channel.AddMember((((HandlerController) controller).Client));
} }
public override void ListChannels(IRpcController controller, ListChannelsRequest request, Action<ListChannelsResponse> done) public override void ListChannels(IRpcController controller, ListChannelsRequest request, Action<ListChannelsResponse> done)
@ -34,7 +34,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
foreach (Channel channel in chatChannels) foreach (Channel channel in chatChannels)
{ {
if (!channel.HasUser(((controller as HandlerController).Client)) && (request.Options.HasName ? request.Options.Name == channel.Name : true) && channel.MaxMembers > channel.Members.Count) if (!channel.HasUser((((HandlerController) controller).Client)) && (request.Options.HasName ? request.Options.Name == channel.Name : true) && channel.MaxMembers > channel.Members.Count)
builder.AddChannel(ChannelDescription.CreateBuilder().SetCurrentMembers((uint)channel.Members.Count) builder.AddChannel(ChannelDescription.CreateBuilder().SetCurrentMembers((uint)channel.Members.Count)
.SetChannelId(bgs.protocol.EntityId.CreateBuilder().SetHigh(channel.BnetEntityId.High).SetLow(channel.BnetEntityId.Low)) .SetChannelId(bgs.protocol.EntityId.CreateBuilder().SetHigh(channel.BnetEntityId.High).SetLow(channel.BnetEntityId.Low))
.SetState(channel.State)); .SetState(channel.State));
@ -59,10 +59,10 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
{ {
var channel = ChannelManager.GetChannelByEntityId(request.ChannelId); var channel = ChannelManager.GetChannelByEntityId(request.ChannelId);
channel.Join(((controller as HandlerController).Client), request.ObjectId); channel.Join((((HandlerController) controller).Client), request.ObjectId);
var builder = JoinChannelResponse.CreateBuilder().SetObjectId(channel.DynamicId).SetMemberId((controller as HandlerController).Client.Account.BnetEntityId); var builder = JoinChannelResponse.CreateBuilder().SetObjectId(channel.DynamicId).SetMemberId(((HandlerController) controller).Client.Account.BnetEntityId);
((controller as HandlerController).Client).ChatChannels.Add(channel); (((HandlerController) controller).Client).ChatChannels.Add(channel);
done(builder.Build()); done(builder.Build());
} }
@ -77,8 +77,8 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
builder.SetObjectId(channel.DynamicId); builder.SetObjectId(channel.DynamicId);
done(builder.Build()); done(builder.Build());
((controller as HandlerController).Client).ChatChannels.Add(channel); (((HandlerController) controller).Client).ChatChannels.Add(channel);
channel.Join(((controller as HandlerController).Client), request.ObjectId); channel.Join((((HandlerController) controller).Client), request.ObjectId);
} }
} }

View File

@ -10,6 +10,7 @@ using DiIiS_NA.LoginServer.ChannelSystem;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -28,8 +29,8 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void RemoveMember(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.RemoveMemberRequest request, Action<bgs.protocol.NoData> done) public override void RemoveMember(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.RemoveMemberRequest request, Action<bgs.protocol.NoData> done)
{ {
Logger.Trace("RemoveMember()"); Logger.MethodTrace(MethodBase.GetCurrentMethod());
var channel = ChannelManager.GetChannelByDynamicId(((controller as HandlerController).LastCallHeader).ObjectId); var channel = ChannelManager.GetChannelByDynamicId((((HandlerController) controller).LastCallHeader).ObjectId);
var gameAccount = GameAccountManager.GetAccountByPersistentID(request.MemberId.Low); var gameAccount = GameAccountManager.GetAccountByPersistentID(request.MemberId.Low);
var builder = bgs.protocol.NoData.CreateBuilder(); var builder = bgs.protocol.NoData.CreateBuilder();
@ -38,17 +39,17 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
channel.RemoveMember(gameAccount.LoggedInClient, Channel.GetRemoveReasonForRequest((Channel.RemoveRequestReason)request.Reason)); channel.RemoveMember(gameAccount.LoggedInClient, Channel.GetRemoveReasonForRequest((Channel.RemoveRequestReason)request.Reason));
if (request.Reason == 0) if (request.Reason == 0)
{ {
ulong invId = ChannelInvitationManager.FindInvAsForClient((controller as HandlerController).Client); ulong invId = ChannelInvitationManager.FindInvAsForClient(((HandlerController) controller).Client);
if (invId != UInt64.MaxValue) if (invId != UInt64.MaxValue)
ChannelInvitationManager.AltConnectToJoin((controller as HandlerController).Client, bgs.protocol.channel.v1.AcceptInvitationRequest.CreateBuilder().SetInvitationId(invId).SetObjectId(0).Build()); ChannelInvitationManager.AltConnectToJoin(((HandlerController) controller).Client, bgs.protocol.channel.v1.AcceptInvitationRequest.CreateBuilder().SetInvitationId(invId).SetObjectId(0).Build());
//ServicesSystem.Services.ChannelInvitationService.CreateStub((controller as HandlerController).Client).AcceptInvitation(controller, bgs.protocol.channel.v1.AcceptInvitationRequest.CreateBuilder().SetInvitationId(invId).SetObjectId(0).Build(), callback => { }); //ServicesSystem.Services.ChannelInvitationService.CreateStub(((HandlerController) controller).Client).AcceptInvitation(controller, bgs.protocol.channel.v1.AcceptInvitationRequest.CreateBuilder().SetInvitationId(invId).SetObjectId(0).Build(), callback => { });
} }
} }
public override void SendMessage(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.SendMessageRequest request, Action<bgs.protocol.NoData> done) public override void SendMessage(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.SendMessageRequest request, Action<bgs.protocol.NoData> done)
{ {
var channel = ChannelManager.GetChannelByDynamicId(((controller as HandlerController).LastCallHeader).ObjectId); var channel = ChannelManager.GetChannelByDynamicId((((HandlerController) controller).LastCallHeader).ObjectId);
//Logger.Trace("{0} sent a message to channel {1}.", ((controller as HandlerController).Client).Account.GameAccount.CurrentToon, channel); //Logger.Trace("{0} sent a message to channel {1}.", (((HandlerController) controller).Client).Account.GameAccount.CurrentToon, channel);
var builder = bgs.protocol.NoData.CreateBuilder(); var builder = bgs.protocol.NoData.CreateBuilder();
done(builder.Build()); done(builder.Build());
@ -59,10 +60,10 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (request.Message.AttributeCount == 0 || !request.Message.AttributeList.First().HasValue) if (request.Message.AttributeCount == 0 || !request.Message.AttributeList.First().HasValue)
return; // check if it has attributes. return; // check if it has attributes.
var parsedAsCommand = CommandManager.TryParse(request.Message.AttributeList[0].Value.StringValue, ((controller as HandlerController).Client)); // try parsing the message as a command var parsedAsCommand = CommandManager.TryParse(request.Message.AttributeList[0].Value.StringValue, (((HandlerController) controller).Client)); // try parsing the message as a command
if (!parsedAsCommand) if (!parsedAsCommand)
channel.SendMessage(((controller as HandlerController).Client), request.Message); // if it's not parsed as an command - let channel itself to broadcast message to it's members. channel.SendMessage((((HandlerController) controller).Client), request.Message); // if it's not parsed as an command - let channel itself to broadcast message to it's members.
} }
public override void UpdateChannelState(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.UpdateChannelStateRequest request, Action<bgs.protocol.NoData> done) public override void UpdateChannelState(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.UpdateChannelStateRequest request, Action<bgs.protocol.NoData> done)
@ -75,9 +76,9 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
ServicesSystem.Services.ChannelInvitationService.CreateStub(this.LoggedInClient).AcceptInvitation(null, request.Build(), callback => { }); ServicesSystem.Services.ChannelInvitationService.CreateStub(this.LoggedInClient).AcceptInvitation(null, request.Build(), callback => { });
} }
//*/ //*/
Channel channel = ChannelManager.GetChannelByDynamicId(((controller as HandlerController).LastCallHeader).ObjectId); Channel channel = ChannelManager.GetChannelByDynamicId((((HandlerController) controller).LastCallHeader).ObjectId);
Logger.Debug("UpdateChannelState(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
foreach (bgs.protocol.Attribute attribute in request.StateChange.AttributeList) foreach (bgs.protocol.Attribute attribute in request.StateChange.AttributeList)
{ {
@ -88,7 +89,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameCreateParams = D3.OnlineService.GameCreateParams.ParseFrom(attribute.Value.MessageValue); var gameCreateParams = D3.OnlineService.GameCreateParams.ParseFrom(attribute.Value.MessageValue);
Logger.Debug("D3.Party.GameCreateParams: {0}", gameCreateParams.ToString()); Logger.Debug("D3.Party.GameCreateParams: {0}", gameCreateParams.ToString());
//D3.OnlineService.EntityId hero = gameCreateParams.Coop.ResumeFromSaveHeroId; //D3.OnlineService.EntityId hero = gameCreateParams.Coop.ResumeFromSaveHeroId;
bool clear_quests = ((controller as HandlerController).Client.GameChannel != null && gameCreateParams.CampaignOrAdventureMode.QuestStepId == -1 && bool clear_quests = (((HandlerController) controller).Client.GameChannel != null && gameCreateParams.CampaignOrAdventureMode.QuestStepId == -1 &&
(gameCreateParams.CampaignOrAdventureMode.SnoQuest == 87700 || (gameCreateParams.CampaignOrAdventureMode.SnoQuest == 87700 ||
gameCreateParams.CampaignOrAdventureMode.SnoQuest == 80322 || gameCreateParams.CampaignOrAdventureMode.SnoQuest == 80322 ||
gameCreateParams.CampaignOrAdventureMode.SnoQuest == 93595 || gameCreateParams.CampaignOrAdventureMode.SnoQuest == 93595 ||
@ -97,9 +98,9 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var paramsBuilder = D3.OnlineService.GameCreateParams.CreateBuilder(gameCreateParams); var paramsBuilder = D3.OnlineService.GameCreateParams.CreateBuilder(gameCreateParams);
var Mode = D3.OnlineService.CampaignOrAdventureModeCreateParams.CreateBuilder(gameCreateParams.CampaignOrAdventureMode); var Mode = D3.OnlineService.CampaignOrAdventureModeCreateParams.CreateBuilder(gameCreateParams.CampaignOrAdventureMode);
lock ((controller as HandlerController).Client.Account.GameAccount.CurrentToon.DBToon) lock (((HandlerController) controller).Client.Account.GameAccount.CurrentToon.DBToon)
{ {
DBToon toonByClient = ((controller as HandlerController).Client).Account.GameAccount.CurrentToon.DBToon; DBToon toonByClient = (((HandlerController) controller).Client).Account.GameAccount.CurrentToon.DBToon;
if(toonByClient.CurrentAct == 400) if(toonByClient.CurrentAct == 400)
toonByClient.CurrentAct = gameCreateParams.CampaignOrAdventureMode.Act; toonByClient.CurrentAct = gameCreateParams.CampaignOrAdventureMode.Act;
if (!clear_quests) if (!clear_quests)
@ -128,7 +129,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
//paramsBuilder.ClearCoop(); //paramsBuilder.ClearCoop();
//paramsBuilder.SetPvp(D3.OnlineService.PvPCreateParams.CreateBuilder().SetSnoWorld(79100)); //paramsBuilder.SetPvp(D3.OnlineService.PvPCreateParams.CreateBuilder().SetSnoWorld(79100));
/*var toon = ((controller as HandlerController).Client).Account.GameAccount.CurrentToon.DBToon; /*var toon = (((HandlerController) controller).Client).Account.GameAccount.CurrentToon.DBToon;
paramsBuilder.SetCoop(D3.OnlineService.CoopCreateParams.CreateBuilder() paramsBuilder.SetCoop(D3.OnlineService.CoopCreateParams.CreateBuilder()
.SetDifficultyLevel(toon.CurrentDifficulty) .SetDifficultyLevel(toon.CurrentDifficulty)
.SetAct(toon.CurrentAct) .SetAct(toon.CurrentAct)
@ -151,8 +152,8 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
else else
{ {
var gameCreateParamsBuilder = D3.OnlineService.GameCreateParams.CreateBuilder(); var gameCreateParamsBuilder = D3.OnlineService.GameCreateParams.CreateBuilder();
var toon = ((controller as HandlerController).Client).Account.GameAccount.CurrentToon; var toon = (((HandlerController) controller).Client).Account.GameAccount.CurrentToon;
var dbToon = ((controller as HandlerController).Client).Account.GameAccount.CurrentToon.DBToon; var dbToon = (((HandlerController) controller).Client).Account.GameAccount.CurrentToon.DBToon;
gameCreateParamsBuilder.SetGameType(1); gameCreateParamsBuilder.SetGameType(1);
gameCreateParamsBuilder.SetCreationFlags(0); gameCreateParamsBuilder.SetCreationFlags(0);
gameCreateParamsBuilder.SetCampaignOrAdventureMode(D3.OnlineService.CampaignOrAdventureModeCreateParams.CreateBuilder() gameCreateParamsBuilder.SetCampaignOrAdventureMode(D3.OnlineService.CampaignOrAdventureModeCreateParams.CreateBuilder()
@ -197,7 +198,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
else else
{ {
var oldScreen = D3.PartyMessage.ScreenStatus.ParseFrom(attribute.Value.MessageValue); var oldScreen = D3.PartyMessage.ScreenStatus.ParseFrom(attribute.Value.MessageValue);
((controller as HandlerController).Client).Account.GameAccount.ScreenStatus = oldScreen; (((HandlerController) controller).Client).Account.GameAccount.ScreenStatus = oldScreen;
// TODO: save screen status for use with friends -Egris // TODO: save screen status for use with friends -Egris
var attr = bgs.protocol.Attribute.CreateBuilder() var attr = bgs.protocol.Attribute.CreateBuilder()
@ -313,7 +314,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
} }
else else
{ {
Logger.Debug("UpdateChannelState(): Unknown attribute: {0}", attribute.Name); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "Unknown attribute: {0}", attribute.Name);
} }
} }
@ -324,13 +325,13 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
done(builder.Build()); done(builder.Build());
var notification = bgs.protocol.channel.v1.UpdateChannelStateNotification.CreateBuilder() var notification = bgs.protocol.channel.v1.UpdateChannelStateNotification.CreateBuilder()
.SetAgentId(((controller as HandlerController).Client).Account.GameAccount.BnetEntityId) .SetAgentId((((HandlerController) controller).Client).Account.GameAccount.BnetEntityId)
/* /*
.SetChannelId(bgs.protocol.channel.v1.ChannelId.CreateBuilder().SetId((uint)channel.BnetEntityId.Low)) .SetChannelId(bgs.protocol.channel.v1.ChannelId.CreateBuilder().SetId((uint)channel.BnetEntityId.Low))
.SetSubscriber(bgs.protocol.account.v1.Identity.CreateBuilder() .SetSubscriber(bgs.protocol.account.v1.Identity.CreateBuilder()
.SetAccount(bgs.protocol.account.v1.AccountId.CreateBuilder().SetId((uint)((controller as HandlerController).Client).Account.BnetEntityId.Low)) .SetAccount(bgs.protocol.account.v1.AccountId.CreateBuilder().SetId((uint)(((HandlerController) controller).Client).Account.BnetEntityId.Low))
.SetGameAccount(bgs.protocol.account.v1.GameAccountHandle.CreateBuilder() .SetGameAccount(bgs.protocol.account.v1.GameAccountHandle.CreateBuilder()
.SetId((uint)((controller as HandlerController).Client).Account.GameAccount.BnetEntityId.Low) .SetId((uint)(((HandlerController) controller).Client).Account.GameAccount.BnetEntityId.Low)
.SetProgram(17459) .SetProgram(17459)
.SetRegion(1)) .SetRegion(1))
.SetProcess(bgs.protocol.ProcessId.CreateBuilder().SetLabel(0).SetEpoch(DateTime.Today.ToUnixTime()))) .SetProcess(bgs.protocol.ProcessId.CreateBuilder().SetLabel(0).SetEpoch(DateTime.Today.ToUnixTime())))
@ -340,7 +341,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var altnotif = bgs.protocol.channel.v1.JoinNotification.CreateBuilder().SetChannelState(channel.State).Build(); var altnotif = bgs.protocol.channel.v1.JoinNotification.CreateBuilder().SetChannelState(channel.State).Build();
var client = (controller as HandlerController).Client; var client = ((HandlerController) controller).Client;
//Notify all Channel members //Notify all Channel members
foreach (var member in channel.Members.Keys) foreach (var member in channel.Members.Keys)
@ -351,7 +352,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void UpdateMemberState(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.UpdateMemberStateRequest request, Action<bgs.protocol.NoData> done) public override void UpdateMemberState(Google.ProtocolBuffers.IRpcController controller, bgs.protocol.channel.v1.UpdateMemberStateRequest request, Action<bgs.protocol.NoData> done)
{ {
var channel = ChannelManager.GetChannelByDynamicId(((controller as HandlerController).LastCallHeader).ObjectId); var channel = ChannelManager.GetChannelByDynamicId((((HandlerController) controller).LastCallHeader).ObjectId);
var builder = bgs.protocol.NoData.CreateBuilder(); var builder = bgs.protocol.NoData.CreateBuilder();
done(builder.Build()); done(builder.Build());
@ -372,7 +373,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
else else
{ {
Logger.Trace("D3.PartyMember.GameId = null"); Logger.Trace("D3.PartyMember.GameId = null");
channel.RemoveMember((controller as HandlerController).Client, Channel.GetRemoveReasonForRequest((Channel.RemoveRequestReason)2)); channel.RemoveMember(((HandlerController) controller).Client, Channel.GetRemoveReasonForRequest((Channel.RemoveRequestReason)2));
} }
} }
@ -384,7 +385,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
channelMember.SetState(state); channelMember.SetState(state);
var notification = bgs.protocol.channel.v1.UpdateMemberStateNotification.CreateBuilder() var notification = bgs.protocol.channel.v1.UpdateMemberStateNotification.CreateBuilder()
.SetAgentId(((controller as HandlerController).Client).Account.GameAccount.BnetEntityId) .SetAgentId((((HandlerController) controller).Client).Account.GameAccount.BnetEntityId)
.AddStateChange(channelMember) .AddStateChange(channelMember)
.Build(); .Build();

View File

@ -28,29 +28,29 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (request.HasUseBindlessRpc) if (request.HasUseBindlessRpc)
builder.SetUseBindlessRpc(true); builder.SetUseBindlessRpc(true);
(controller as HandlerController).Client.Services.Add(0x54DFDA17, 0x01); ((HandlerController) controller).Client.Services.Add(0x54DFDA17, 0x01);
(controller as HandlerController).Client.Services.Add(0xD4DCD093, 0x02); ((HandlerController) controller).Client.Services.Add(0xD4DCD093, 0x02);
(controller as HandlerController).Client.Services.Add(0x71240E35, 0x03); ((HandlerController) controller).Client.Services.Add(0x71240E35, 0x03);
(controller as HandlerController).Client.Services.Add(0xBBDA171F, 0x04); ((HandlerController) controller).Client.Services.Add(0xBBDA171F, 0x04);
(controller as HandlerController).Client.Services.Add(0xF084FC20, 0x05); ((HandlerController) controller).Client.Services.Add(0xF084FC20, 0x05);
(controller as HandlerController).Client.Services.Add(0xBF8C8094, 0x06); ((HandlerController) controller).Client.Services.Add(0xBF8C8094, 0x06);
(controller as HandlerController).Client.Services.Add(0x166FE4A1, 0x07); ((HandlerController) controller).Client.Services.Add(0x166FE4A1, 0x07);
(controller as HandlerController).Client.Services.Add(0xB96F5297, 0x08); ((HandlerController) controller).Client.Services.Add(0xB96F5297, 0x08);
(controller as HandlerController).Client.Services.Add(0x6F259A13, 0x09); ((HandlerController) controller).Client.Services.Add(0x6F259A13, 0x09);
(controller as HandlerController).Client.Services.Add(0xE1CB2EA8, 0x0A); ((HandlerController) controller).Client.Services.Add(0xE1CB2EA8, 0x0A);
(controller as HandlerController).Client.Services.Add(0xBC872C22, 0x0B); ((HandlerController) controller).Client.Services.Add(0xBC872C22, 0x0B);
(controller as HandlerController).Client.Services.Add(0x7FE36B32, 0x0C); ((HandlerController) controller).Client.Services.Add(0x7FE36B32, 0x0C);
(controller as HandlerController).Client.Services.Add(233634817, 0x0D); ((HandlerController) controller).Client.Services.Add(233634817, 0x0D);
(controller as HandlerController).Client.Services.Add(0x62DA0891, 0x0E); //AccountService ((HandlerController) controller).Client.Services.Add(0x62DA0891, 0x0E); //AccountService
(controller as HandlerController).Client.Services.Add(510168069, 0x0F); ((HandlerController) controller).Client.Services.Add(510168069, 0x0F);
(controller as HandlerController).Client.Services.Add(0x45E59C4D, 0x10); ((HandlerController) controller).Client.Services.Add(0x45E59C4D, 0x10);
(controller as HandlerController).Client.Services.Add(0x135185EF, 0x11); ((HandlerController) controller).Client.Services.Add(0x135185EF, 0x11);
(controller as HandlerController).Client.Services.Add(1910276758, 0x51); ((HandlerController) controller).Client.Services.Add(1910276758, 0x51);
//(controller as HandlerController).Client.Services.Add(2495170438, 0x25); //((HandlerController) controller).Client.Services.Add(2495170438, 0x25);
(controller as HandlerController).Client.Services.Add(2119327385, 0x26); ((HandlerController) controller).Client.Services.Add(2119327385, 0x26);
done(builder.Build()); done(builder.Build());
Logger.Info("Connect with Blizzless established. Client - {0}", (controller as HandlerController).Client.SocketConnection.RemoteAddress); Logger.Info("Connect with Blizzless established. Client - {0}", ((HandlerController) controller).Client.SocketConnection.RemoteAddress);
} }
public override void Echo(IRpcController controller, EchoRequest request, Action<EchoResponse> done) public override void Echo(IRpcController controller, EchoRequest request, Action<EchoResponse> done)
@ -74,22 +74,22 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void RequestDisconnect(IRpcController controller, DisconnectRequest request, Action<NO_RESPONSE> done) public override void RequestDisconnect(IRpcController controller, DisconnectRequest request, Action<NO_RESPONSE> done)
{ {
Logger.Info("Client - {0} , disconnected", (controller as HandlerController).Client.SocketConnection.RemoteAddress); Logger.Info("Client - {0} , disconnected", ((HandlerController) controller).Client.SocketConnection.RemoteAddress);
DisconnectClient(controller as HandlerController); DisconnectClient((HandlerController) controller);
if ((controller as HandlerController).Client.Account != null) if (((HandlerController) controller).Client.Account != null)
(controller as HandlerController).Client.Account.GameAccount.IsLoggedIn = false; ((HandlerController) controller).Client.Account.GameAccount.IsLoggedIn = false;
((controller as HandlerController).Client).Connect.CloseAsync(); (((HandlerController) controller).Client).Connect.CloseAsync();
(controller as HandlerController).Client.SocketConnection.CloseAsync(); ((HandlerController) controller).Client.SocketConnection.CloseAsync();
/* /*
if ((controller as HandlerController).Client.Account != null) if (((HandlerController) controller).Client.Account != null)
{ {
(controller as HandlerController).Client.Account.CurrentGameAccount.Logined = false; ((HandlerController) controller).Client.Account.CurrentGameAccount.Logined = false;
AccountManager.SaveToDB((controller as HandlerController).Client.Account); AccountManager.SaveToDB(((HandlerController) controller).Client.Account);
if ((controller as HandlerController).Client.Account.CurrentGameAccount != null) if (((HandlerController) controller).Client.Account.CurrentGameAccount != null)
{ {
GameAccountManager.SaveToDB((controller as HandlerController).Client.Account.CurrentGameAccount); GameAccountManager.SaveToDB(((HandlerController) controller).Client.Account.CurrentGameAccount);
(controller as HandlerController).Client.SocketConnection.CloseAsync(); ((HandlerController) controller).Client.SocketConnection.CloseAsync();
(controller as HandlerController).Client.Connect.CloseAsync(); ((HandlerController) controller).Client.Connect.CloseAsync();
} }
} }
//*/ //*/

View File

@ -9,6 +9,7 @@ using DiIiS_NA.LoginServer.Helpers;
using Google.ProtocolBuffers; using Google.ProtocolBuffers;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection;
namespace DiIiS_NA.LoginServer.ServicesSystem.Services namespace DiIiS_NA.LoginServer.ServicesSystem.Services
{ {
@ -19,10 +20,10 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void Subscribe(IRpcController controller, SubscribeRequest request, Action<SubscribeResponse> done) public override void Subscribe(IRpcController controller, SubscribeRequest request, Action<SubscribeResponse> done)
{ {
Logger.Trace("Subscribe() {0}", ((controller as HandlerController).Client)); Logger.Trace("Subscribe() {0}", (((HandlerController) controller).Client));
FriendManager.Instance.AddSubscriber(((controller as HandlerController).Client), request.ObjectId); FriendManager.Instance.AddSubscriber((((HandlerController) controller).Client), request.ObjectId);
var builder = SubscribeResponse.CreateBuilder() var builder = SubscribeResponse.CreateBuilder()
.SetMaxFriends(127) .SetMaxFriends(127)
@ -31,7 +32,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
.AddRole(Role.CreateBuilder().SetId(1).SetName("battle_tag_friend").Build()) .AddRole(Role.CreateBuilder().SetId(1).SetName("battle_tag_friend").Build())
.AddRole(Role.CreateBuilder().SetId(2).SetName("real_id_friend").Build()); .AddRole(Role.CreateBuilder().SetId(2).SetName("real_id_friend").Build());
var friendsIDs = ((controller as HandlerController).Client).Account.FriendsIds; var friendsIDs = (((HandlerController) controller).Client).Account.FriendsIds;
foreach (var dbidFriend in friendsIDs) // send friends list. foreach (var dbidFriend in friendsIDs) // send friends list.
{ {
var resp = Friend.CreateBuilder() var resp = Friend.CreateBuilder()
@ -46,7 +47,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
foreach (var invitation in FriendManager.OnGoingInvitations.Values) foreach (var invitation in FriendManager.OnGoingInvitations.Values)
{ {
if (invitation.InviteeIdentity.AccountId == ((controller as HandlerController).Client).Account.BnetEntityId && !friendsIDs.Contains(invitation.InviterIdentity.AccountId.Low)) if (invitation.InviteeIdentity.AccountId == (((HandlerController) controller).Client).Account.BnetEntityId && !friendsIDs.Contains(invitation.InviterIdentity.AccountId.Low))
{ {
invitations.Add(invitation); invitations.Add(invitation);
} }
@ -64,16 +65,16 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var response = NoData.CreateBuilder(); var response = NoData.CreateBuilder();
if (friendRequest.TargetEmail.ToLower() == ((controller as HandlerController).Client).Account.Email.ToLower()) if (friendRequest.TargetEmail.ToLower() == (((HandlerController) controller).Client).Account.Email.ToLower())
{ {
((controller as HandlerController).Status) = 317202; (((HandlerController) controller).Status) = 317202;
done(response.Build()); done(response.Build());
return; return;
} }
if (friendRequest.TargetBattleTag == ((controller as HandlerController).Client).Account.BattleTag) if (friendRequest.TargetBattleTag == (((HandlerController) controller).Client).Account.BattleTag)
{ {
((controller as HandlerController).Status) = 317202; (((HandlerController) controller).Status) = 317202;
done(response.Build()); done(response.Build());
return; return;
} }
@ -90,44 +91,44 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (invitee == null) if (invitee == null)
{ {
if (friendRequest.HasTargetEmail) if (friendRequest.HasTargetEmail)
((controller as HandlerController).Status) = 4; (((HandlerController) controller).Status) = 4;
else else
((controller as HandlerController).Status) = 317203; (((HandlerController) controller).Status) = 317203;
done(response.Build()); done(response.Build());
return; return;
} }
else if (FriendManager.AreFriends(((controller as HandlerController).Client).Account, invitee)) else if (FriendManager.AreFriends((((HandlerController) controller).Client).Account, invitee))
{ {
if (friendRequest.HasTargetEmail) if (friendRequest.HasTargetEmail)
((controller as HandlerController).Status) = 317201; (((HandlerController) controller).Status) = 317201;
else else
((controller as HandlerController).Status) = 5003; (((HandlerController) controller).Status) = 5003;
done(response.Build()); done(response.Build());
return; return;
} }
else if (FriendManager.InvitationExists(((controller as HandlerController).Client).Account, invitee)) else if (FriendManager.InvitationExists((((HandlerController) controller).Client).Account, invitee))
{ {
if (friendRequest.HasTargetEmail) if (friendRequest.HasTargetEmail)
((controller as HandlerController).Status) = 317200; (((HandlerController) controller).Status) = 317200;
else else
((controller as HandlerController).Status) = 5005; (((HandlerController) controller).Status) = 5005;
done(response.Build()); done(response.Build());
return; return;
} }
else if (invitee.IgnoreIds.Contains((controller as HandlerController).Client.Account.PersistentID)) else if (invitee.IgnoreIds.Contains(((HandlerController) controller).Client.Account.PersistentID))
{ {
((controller as HandlerController).Status) = 5006; (((HandlerController) controller).Status) = 5006;
done(response.Build()); done(response.Build());
return; return;
} }
Logger.Trace("{0} sent {1} friend invitation.", ((controller as HandlerController).Client).Account, invitee); Logger.Trace("{0} sent {1} friend invitation.", (((HandlerController) controller).Client).Account, invitee);
var invitation = ReceivedInvitation.CreateBuilder() var invitation = ReceivedInvitation.CreateBuilder()
.SetId(FriendManager.InvitationIdCounter++) // we may actually need to store invitation ids in database with the actual invitation there. /raist. .SetId(FriendManager.InvitationIdCounter++) // we may actually need to store invitation ids in database with the actual invitation there. /raist.
.SetInviterIdentity(Identity.CreateBuilder().SetAccountId(((controller as HandlerController).Client).Account.BnetEntityId)) .SetInviterIdentity(Identity.CreateBuilder().SetAccountId((((HandlerController) controller).Client).Account.BnetEntityId))
.SetInviteeIdentity(Identity.CreateBuilder().SetAccountId(invitee.BnetEntityId)) .SetInviteeIdentity(Identity.CreateBuilder().SetAccountId(invitee.BnetEntityId))
.SetInviterName(((controller as HandlerController).Client).Account.BattleTagName) .SetInviterName((((HandlerController) controller).Client).Account.BattleTagName)
.SetInviteeName(invitee.BattleTagName) .SetInviteeName(invitee.BattleTagName)
.SetCreationTime(DateTime.Now.ToUnixTime()) .SetCreationTime(DateTime.Now.ToUnixTime())
.SetUnknownFields(UnknownFieldSet.CreateBuilder() .SetUnknownFields(UnknownFieldSet.CreateBuilder()
@ -138,19 +139,19 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
done(response.Build()); done(response.Build());
// notify the invitee on invitation. // notify the invitee on invitation.
FriendManager.HandleInvitation(((controller as HandlerController).Client), invitation.Build()); FriendManager.HandleInvitation((((HandlerController) controller).Client), invitation.Build());
FriendManager.Instance.NotifyUpdate(); FriendManager.Instance.NotifyUpdate();
(controller as HandlerController).Client.Account.NotifyUpdate(); ((HandlerController) controller).Client.Account.NotifyUpdate();
(controller as HandlerController).Client.Account.GameAccount.NotifyUpdate(); ((HandlerController) controller).Client.Account.GameAccount.NotifyUpdate();
} }
public override void AcceptInvitation(IRpcController controller, AcceptInvitationRequest request, Action<NoData> done) public override void AcceptInvitation(IRpcController controller, AcceptInvitationRequest request, Action<NoData> done)
{ {
Logger.Trace("{0} accepted friend invitation.", ((controller as HandlerController).Client).Account); Logger.Trace("{0} accepted friend invitation.", (((HandlerController) controller).Client).Account);
var response = NoData.CreateBuilder(); var response = NoData.CreateBuilder();
done(response.Build()); done(response.Build());
FriendManager.HandleAccept(((controller as HandlerController).Client), request); FriendManager.HandleAccept((((HandlerController) controller).Client), request);
} }
public override void RevokeInvitation(IRpcController controller, RevokeInvitationRequest request, Action<NoData> done) public override void RevokeInvitation(IRpcController controller, RevokeInvitationRequest request, Action<NoData> done)
{ {
@ -158,12 +159,12 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
} }
public override void DeclineInvitation(IRpcController controller, DeclineInvitationRequest request, Action<NoData> done) public override void DeclineInvitation(IRpcController controller, DeclineInvitationRequest request, Action<NoData> done)
{ {
Logger.Trace("{0} declined friend invitation.", ((controller as HandlerController).Client).Account); Logger.Trace("{0} declined friend invitation.", (((HandlerController) controller).Client).Account);
var response = NoData.CreateBuilder(); var response = NoData.CreateBuilder();
done(response.Build()); done(response.Build());
FriendManager.HandleDecline(((controller as HandlerController).Client), request); FriendManager.HandleDecline((((HandlerController) controller).Client), request);
} }
public override void IgnoreInvitation(IRpcController controller, IgnoreInvitationRequest request, Action<NoData> done) public override void IgnoreInvitation(IRpcController controller, IgnoreInvitationRequest request, Action<NoData> done)
{ {
@ -172,25 +173,25 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var response = NoData.CreateBuilder(); var response = NoData.CreateBuilder();
done(response.Build()); done(response.Build());
FriendManager.HandleIgnore(((controller as HandlerController).Client), request); FriendManager.HandleIgnore((((HandlerController) controller).Client), request);
} }
public override void RemoveFriend(IRpcController controller, RemoveFriendRequest request, Action<NoData> done) public override void RemoveFriend(IRpcController controller, RemoveFriendRequest request, Action<NoData> done)
{ {
Logger.Trace("{0} removed friend with id {1}.", ((controller as HandlerController).Client).Account, request.TargetId); Logger.Trace("{0} removed friend with id {1}.", (((HandlerController) controller).Client).Account, request.TargetId);
done(NoData.DefaultInstance); done(NoData.DefaultInstance);
FriendManager.HandleRemove(((controller as HandlerController).Client), request); FriendManager.HandleRemove((((HandlerController) controller).Client), request);
FriendManager.Instance.NotifyUpdate(); FriendManager.Instance.NotifyUpdate();
(controller as HandlerController).Client.Account.NotifyUpdate(); ((HandlerController) controller).Client.Account.NotifyUpdate();
(controller as HandlerController).Client.Account.GameAccount.NotifyUpdate(); ((HandlerController) controller).Client.Account.GameAccount.NotifyUpdate();
} }
public override void ViewFriends(IRpcController controller, ViewFriendsRequest request, Action<ViewFriendsResponse> done) public override void ViewFriends(IRpcController controller, ViewFriendsRequest request, Action<ViewFriendsResponse> done)
{ {
Logger.Trace("ViewFriends(): {0}.", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}.", request.ToString());
var builder = ViewFriendsResponse.CreateBuilder(); var builder = ViewFriendsResponse.CreateBuilder();
var friendsIDs = AccountManager.GetAccountByPersistentID(request.TargetId.Low).FriendsIds; var friendsIDs = AccountManager.GetAccountByPersistentID(request.TargetId.Low).FriendsIds;
@ -209,7 +210,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
} }
public override void UpdateFriendState(IRpcController controller, UpdateFriendStateRequest request, Action<NoData> done) public override void UpdateFriendState(IRpcController controller, UpdateFriendStateRequest request, Action<NoData> done)
{ {
Logger.Trace("UpdateFriendState(): {0}.", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}.", request.ToString());
done(NoData.CreateBuilder().Build()); done(NoData.CreateBuilder().Build());
} }

View File

@ -21,6 +21,7 @@ using Google.ProtocolBuffers;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
namespace DiIiS_NA.LoginServer.ServicesSystem.Services namespace DiIiS_NA.LoginServer.ServicesSystem.Services
{ {
@ -1184,7 +1185,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private ByteString SearchGuilds(BattleClient client, ByteString data) private ByteString SearchGuilds(BattleClient client, ByteString data)
{ {
GuildSearch request = GuildSearch.ParseFrom(data); GuildSearch request = GuildSearch.ParseFrom(data);
Logger.Debug("GuildSearch(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var builder = D3.Guild.GuildSearchResultList.CreateBuilder(); var builder = D3.Guild.GuildSearchResultList.CreateBuilder();
List<Guild> allGuilds = request.ClanOrGroup == 1 ? GuildManager.GetCommunities() : GuildManager.GetClans(); List<Guild> allGuilds = request.ClanOrGroup == 1 ? GuildManager.GetCommunities() : GuildManager.GetClans();
@ -1260,7 +1261,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private void GuildKickMemberP(BattleClient client, GuildKickMember request) private void GuildKickMemberP(BattleClient client, GuildKickMember request)
{ {
Logger.Debug("GuildKickMember(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var guild = GuildManager.GetGuildById(request.GuildId); var guild = GuildManager.GetGuildById(request.GuildId);
if (guild != null && client.Account.GameAccount.PersistentID == guild.Owner.PersistentID) if (guild != null && client.Account.GameAccount.PersistentID == guild.Owner.PersistentID)
@ -1272,7 +1273,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private void GuildDisband(BattleClient client, GuildId request) private void GuildDisband(BattleClient client, GuildId request)
{ {
Logger.Debug("GuildDisband(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var guild = GuildManager.GetGuildById(request.GuildId_); var guild = GuildManager.GetGuildById(request.GuildId_);
if (guild != null && client.Account.GameAccount.PersistentID == guild.Owner.PersistentID) if (guild != null && client.Account.GameAccount.PersistentID == guild.Owner.PersistentID)
@ -1288,7 +1289,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private ByteString GuildFetchNews(BattleClient client, GuildFetchNews request) private ByteString GuildFetchNews(BattleClient client, GuildFetchNews request)
{ {
Logger.Debug("GuildFetchNews(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var builder = D3.Guild.NewsList.CreateBuilder(); var builder = D3.Guild.NewsList.CreateBuilder();
/* news types: /* news types:
@ -1325,7 +1326,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private ByteString GuildPromoteMember(BattleClient client, GuildPromoteMember request) private ByteString GuildPromoteMember(BattleClient client, GuildPromoteMember request)
{ {
Logger.Debug("GuildPromoteMember(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var guild = GuildManager.GetGuildById(request.GuildId); var guild = GuildManager.GetGuildById(request.GuildId);
var account = GameAccountManager.GetAccountByPersistentID(request.MemberId); var account = GameAccountManager.GetAccountByPersistentID(request.MemberId);
@ -1346,7 +1347,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private ByteString GuildDemoteMember(BattleClient client, GuildDemoteMember request) private ByteString GuildDemoteMember(BattleClient client, GuildDemoteMember request)
{ {
Logger.Debug("GuildDemoteMember(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var guild = GuildManager.GetGuildById(request.GuildId); var guild = GuildManager.GetGuildById(request.GuildId);
var account = GameAccountManager.GetAccountByPersistentID(request.MemberId); var account = GameAccountManager.GetAccountByPersistentID(request.MemberId);
@ -1510,7 +1511,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
private ByteString CreateCommunity(BattleClient client, ByteString data) private ByteString CreateCommunity(BattleClient client, ByteString data)
{ {
var request = GroupCreate.ParseFrom(data); var request = GroupCreate.ParseFrom(data);
Logger.Debug("CreateCommunity(): {0}", request.ToString()); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", request.ToString());
var guild = GuildManager.CreateNewGuild(client.Account.GameAccount, request.Name, "", false, var guild = GuildManager.CreateNewGuild(client.Account.GameAccount, request.Name, "", false,
request.SearchCategory, false, request.Language); request.SearchCategory, false, request.Language);

View File

@ -29,17 +29,17 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
case NotificationTypeHelper.NotificationType.Whisper: case NotificationTypeHelper.NotificationType.Whisper:
var targetAccount = GameAccountManager.GetAccountByPersistentID(request.TargetId.Low); var targetAccount = GameAccountManager.GetAccountByPersistentID(request.TargetId.Low);
Logger.Trace(string.Format("NotificationRequest.Whisper by {0} to {1}", (controller as HandlerController).Client.Account.GameAccount, targetAccount)); Logger.Trace(string.Format("NotificationRequest.Whisper by {0} to {1}", ((HandlerController) controller).Client.Account.GameAccount, targetAccount));
if (targetAccount.LoggedInClient == null) return; if (targetAccount.LoggedInClient == null) return;
if (targetAccount == (controller as HandlerController).Client.Account.GameAccount) if (targetAccount == ((HandlerController) controller).Client.Account.GameAccount)
CommandManager.TryParse(request.AttributeList[0].Value.StringValue, (controller as HandlerController).Client); // try parsing it as a command and respond it if so. CommandManager.TryParse(request.AttributeList[0].Value.StringValue, ((HandlerController) controller).Client); // try parsing it as a command and respond it if so.
else else
{ {
var notification = Notification.CreateBuilder(request) var notification = Notification.CreateBuilder(request)
.SetSenderId((controller as HandlerController).Client.Account.GameAccount.BnetEntityId) .SetSenderId(((HandlerController) controller).Client.Account.GameAccount.BnetEntityId)
.SetSenderAccountId((controller as HandlerController).Client.Account.BnetEntityId) .SetSenderAccountId(((HandlerController) controller).Client.Account.BnetEntityId)
.Build(); .Build();
targetAccount.LoggedInClient.MakeRPC((lid) => targetAccount.LoggedInClient.MakeRPC((lid) =>

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022 //Blizzless Project 2022
using System; using System;
using System.Reflection;
using Google.ProtocolBuffers; using Google.ProtocolBuffers;
using bgs.protocol; using bgs.protocol;
using bgs.protocol.presence.v1; using bgs.protocol.presence.v1;
@ -34,7 +35,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var account = AccountManager.GetAccountByPersistentID(req.Low); var account = AccountManager.GetAccountByPersistentID(req.Low);
if (account != null) if (account != null)
{ {
Logger.MethodTrace("Subscribe() {0} {1}", (((HandlerController)controller).Client), account); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1}", (((HandlerController)controller).Client), account);
account.AddSubscriber((((HandlerController)controller).Client), request.ObjectId); account.AddSubscriber((((HandlerController)controller).Client), request.ObjectId);
response.AddSubscribeFailed(SubscribeResult.CreateBuilder().SetEntityId(req) response.AddSubscribeFailed(SubscribeResult.CreateBuilder().SetEntityId(req)
.SetResult(0)); .SetResult(0));
@ -46,7 +47,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameAccount = GameAccountManager.GetAccountByPersistentID(req.Low); var gameAccount = GameAccountManager.GetAccountByPersistentID(req.Low);
if (gameAccount != null) if (gameAccount != null)
{ {
Logger.MethodTrace("Subscribe() {0} {1}", (((HandlerController)controller).Client), Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1}", (((HandlerController)controller).Client),
gameAccount); gameAccount);
gameAccount.AddSubscriber((((HandlerController)controller).Client), request.ObjectId); gameAccount.AddSubscriber((((HandlerController)controller).Client), request.ObjectId);
response.AddSubscribeFailed(SubscribeResult.CreateBuilder().SetEntityId(req) response.AddSubscribeFailed(SubscribeResult.CreateBuilder().SetEntityId(req)
@ -83,7 +84,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameAccount = AccountManager.GetAccountByPersistentID(request.EntityId.Low); var gameAccount = AccountManager.GetAccountByPersistentID(request.EntityId.Low);
foreach (var key in request.KeyList) foreach (var key in request.KeyList)
{ {
Logger.Debug("Query() {0} {1} - {2}, {3}, {4}", (((HandlerController)controller).Client), Logger.MethodTrace(MethodBase.GetCurrentMethod(),"{0} {1} - {2}, {3}, {4}", (((HandlerController)controller).Client),
gameAccount, (FieldKeyHelper.Program)key.Program, (FieldKeyHelper.OriginatingClass)key.Group, gameAccount, (FieldKeyHelper.Program)key.Program, (FieldKeyHelper.OriginatingClass)key.Group,
key.Field); key.Field);
var field = gameAccount.QueryField(key); var field = gameAccount.QueryField(key);
@ -97,7 +98,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameAccount = GameAccountManager.GetAccountByPersistentID(request.EntityId.Low); var gameAccount = GameAccountManager.GetAccountByPersistentID(request.EntityId.Low);
foreach (var key in request.KeyList) foreach (var key in request.KeyList)
{ {
Logger.Debug("Query() {0} {1} - {2}, {3}, {4}", (((HandlerController)controller).Client), Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1} - {2}, {3}, {4}", (((HandlerController)controller).Client),
gameAccount, (FieldKeyHelper.Program)key.Program, gameAccount, (FieldKeyHelper.Program)key.Program,
(FieldKeyHelper.OriginatingClass)key.Group, key.Field); (FieldKeyHelper.OriginatingClass)key.Group, key.Field);
var field = gameAccount.QueryField(key); var field = gameAccount.QueryField(key);
@ -124,7 +125,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameAccount = AccountManager.GetAccountByPersistentID(request.EntityId.Low); var gameAccount = AccountManager.GetAccountByPersistentID(request.EntityId.Low);
if (gameAccount != null) if (gameAccount != null)
{ {
Logger.MethodTrace("Subscribe() {0} {1}", (((HandlerController)controller).Client), gameAccount); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1}", (((HandlerController)controller).Client), gameAccount);
gameAccount.AddSubscriber((((HandlerController)controller).Client), request.ObjectId); gameAccount.AddSubscriber((((HandlerController)controller).Client), request.ObjectId);
} }
} }
@ -134,7 +135,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameaccount = GameAccountManager.GetAccountByPersistentID(request.EntityId.Low); var gameaccount = GameAccountManager.GetAccountByPersistentID(request.EntityId.Low);
if (gameaccount != null) if (gameaccount != null)
{ {
Logger.MethodTrace("Subscribe() {0} {1}", (((HandlerController)controller).Client), gameaccount); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1}", (((HandlerController)controller).Client), gameaccount);
gameaccount.AddSubscriber((((HandlerController)controller).Client), request.ObjectId); gameaccount.AddSubscriber((((HandlerController)controller).Client), request.ObjectId);
} }
} }
@ -161,7 +162,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (gameAccount != null) if (gameAccount != null)
{ {
gameAccount.RemoveSubscriber((((HandlerController) controller).Client)); gameAccount.RemoveSubscriber((((HandlerController) controller).Client));
Logger.MethodTrace("Unsubscribe() {0} {1}", (((HandlerController) controller).Client), gameAccount); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1}", (((HandlerController) controller).Client), gameAccount);
} }
} }
break; break;
@ -171,7 +172,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (gameAccount != null) if (gameAccount != null)
{ {
gameAccount.RemoveSubscriber((((HandlerController) controller).Client)); gameAccount.RemoveSubscriber((((HandlerController) controller).Client));
Logger.MethodTrace("Unsubscribe() {0} {1}", (((HandlerController) controller).Client), gameAccount); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} {1}", (((HandlerController) controller).Client), gameAccount);
} }
} }
break; break;
@ -196,14 +197,14 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
if (request.EntityId.Low <= 0) break; if (request.EntityId.Low <= 0) break;
var gameAccount = AccountManager.GetAccountByPersistentID(request.EntityId.Low); var gameAccount = AccountManager.GetAccountByPersistentID(request.EntityId.Low);
if (gameAccount == null) break; if (gameAccount == null) break;
var traceData = $"Update() {(((HandlerController)controller).Client)} {gameAccount} - {request.FieldOperationCount} Operations"; var traceData = $"{(((HandlerController)controller).Client)} {gameAccount} - {request.FieldOperationCount} Operations";
foreach (var fieldOp in request.FieldOperationList) foreach (var fieldOp in request.FieldOperationList)
{ {
traceData += $"\t{(FieldKeyHelper.Program)fieldOp.Field.Key.Program}, {(FieldKeyHelper.OriginatingClass)fieldOp.Field.Key.Group}, {fieldOp.Field.Key.Field}"; traceData += $"\t{(FieldKeyHelper.Program)fieldOp.Field.Key.Program}, {(FieldKeyHelper.OriginatingClass)fieldOp.Field.Key.Group}, {fieldOp.Field.Key.Field}";
} }
gameAccount.Update(request.FieldOperationList); gameAccount.Update(request.FieldOperationList);
Logger.MethodTrace(traceData); Logger.MethodTrace(MethodBase.GetCurrentMethod(), traceData);
} }
break; break;
case EntityIdHelper.HighIdType.GameAccountId: case EntityIdHelper.HighIdType.GameAccountId:
@ -212,7 +213,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
var gameAccount = GameAccountManager.GetAccountByPersistentID(request.EntityId.Low); var gameAccount = GameAccountManager.GetAccountByPersistentID(request.EntityId.Low);
if (gameAccount == null) break; if (gameAccount == null) break;
var traceData = var traceData =
$"Update() {(((HandlerController) controller).Client)} {gameAccount} - {request.FieldOperationCount} Operations"; $"{(((HandlerController) controller).Client)} {gameAccount} - {request.FieldOperationCount} Operations";
foreach (var fieldOp in request.FieldOperationList) foreach (var fieldOp in request.FieldOperationList)
{ {
traceData += traceData +=
@ -220,7 +221,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
} }
gameAccount.Update(request.FieldOperationList); gameAccount.Update(request.FieldOperationList);
Logger.MethodTrace(traceData); Logger.MethodTrace(MethodBase.GetCurrentMethod(), traceData);
break; break;
} }
default: default:

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022 //Blizzless Project 2022
using System; using System;
using System.Reflection;
using bgs.protocol; using bgs.protocol;
using bgs.protocol.resources.v1; using bgs.protocol.resources.v1;
using DiIiS_NA.Core.Extensions; using DiIiS_NA.Core.Extensions;
@ -19,7 +20,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void GetContentHandle(IRpcController controller, ContentHandleRequest request, Action<ContentHandle> done) public override void GetContentHandle(IRpcController controller, ContentHandleRequest request, Action<ContentHandle> done)
{ {
Logger.Trace("GetContentHandle(): ProgramId: 0x{0:X8} StreamId: 0x{1:X8}", request.Program, request.Stream); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "ProgramId: 0x{0:X8} StreamId: 0x{1:X8}", request.Program, request.Stream);
if (request.Program == (uint)FieldKeyHelper.Program.BNet) if (request.Program == (uint)FieldKeyHelper.Program.BNet)
{ {
var builder = ContentHandle.CreateBuilder() var builder = ContentHandle.CreateBuilder()
@ -54,7 +55,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
default: default:
Logger.Warn("Unknown StreamId: 0x{0:X8}", request.Stream); Logger.Warn("Unknown StreamId: 0x{0:X8}", request.Stream);
builder.SetHash(ByteString.Empty); builder.SetHash(ByteString.Empty);
(controller as HandlerController).Status = 4; ((HandlerController) controller).Status = 4;
break; break;
} }
done(builder.Build()); done(builder.Build());

View File

@ -1,5 +1,6 @@
//Blizzless Project 2022 //Blizzless Project 2022
using System; using System;
using System.Reflection;
using bgs.protocol; using bgs.protocol;
using bgs.protocol.session.v1; using bgs.protocol.session.v1;
using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.Core.Helpers.Math;
@ -38,13 +39,16 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void DestroySession(IRpcController controller, DestroySessionRequest request, Action<NoData> done) public override void DestroySession(IRpcController controller, DestroySessionRequest request, Action<NoData> done)
{ {
Logger.MethodTrace(nameof(SessionService)); Logger.MethodTrace(MethodBase.GetCurrentMethod());
Logger.Trace("Destroying game session for client {0}", ((HandlerController) controller).Client); Logger.Trace("Destroying game session for client {0}", ((HandlerController) controller).Client);
DisconnectClient((HandlerController) controller); if (controller is HandlerController handlerController)
if (((HandlerController) controller).Client.Account != null) {
((HandlerController) controller).Client.Account.GameAccount.IsLoggedIn = false; DisconnectClient(handlerController);
(((HandlerController) controller).Client).Connect.CloseAsync(); if (handlerController.Client.Account != null)
((HandlerController) controller).Client.SocketConnection.CloseAsync(); handlerController.Client.Account.GameAccount.IsLoggedIn = false;
(handlerController.Client).Connect.CloseAsync();
handlerController.Client.SocketConnection.CloseAsync();
}
done(NoData.CreateBuilder().Build()); done(NoData.CreateBuilder().Build());
} }

View File

@ -8,6 +8,7 @@ using DiIiS_NA.LoginServer.FriendsSystem;
using DiIiS_NA.LoginServer.Helpers; using DiIiS_NA.LoginServer.Helpers;
using Google.ProtocolBuffers; using Google.ProtocolBuffers;
using System; using System;
using System.Reflection;
namespace DiIiS_NA.LoginServer.ServicesSystem.Services namespace DiIiS_NA.LoginServer.ServicesSystem.Services
{ {
@ -18,13 +19,13 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void Subscribe(IRpcController controller, SubscribeRequest request, Action<SubscribeResponse> done) public override void Subscribe(IRpcController controller, SubscribeRequest request, Action<SubscribeResponse> done)
{ {
Logger.MethodTrace("Subscribe({0})", ((controller as HandlerController).Client)); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", (((HandlerController) controller).Client));
UserManager.Instance.AddSubscriber(((controller as HandlerController).Client), request.ObjectId); UserManager.Instance.AddSubscriber((((HandlerController) controller).Client), request.ObjectId);
var builder = SubscribeResponse.CreateBuilder(); var builder = SubscribeResponse.CreateBuilder();
var blockedIds = (controller as HandlerController).Client.Account.IgnoreIds; var blockedIds = ((HandlerController) controller).Client.Account.IgnoreIds;
foreach (var blocked in blockedIds) foreach (var blocked in blockedIds)
{ {
@ -41,7 +42,7 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void AddRecentPlayers(IRpcController controller, AddRecentPlayersRequest request, Action<NoData> done) public override void AddRecentPlayers(IRpcController controller, AddRecentPlayersRequest request, Action<NoData> done)
{ {
Logger.MethodTrace("AddRecentPlayers()"); Logger.MethodTrace(MethodBase.GetCurrentMethod());
done(NoData.DefaultInstance); done(NoData.DefaultInstance);
} }
@ -52,18 +53,18 @@ namespace DiIiS_NA.LoginServer.ServicesSystem.Services
public override void BlockPlayer(IRpcController controller, BlockPlayerRequest request, Action<NoData> done) public override void BlockPlayer(IRpcController controller, BlockPlayerRequest request, Action<NoData> done)
{ {
Logger.MethodTrace("BlockEntity()"); Logger.MethodTrace(MethodBase.GetCurrentMethod());
done(NoData.CreateBuilder().Build()); done(NoData.CreateBuilder().Build());
UserManager.BlockAccount(((controller as HandlerController).Client), request); UserManager.BlockAccount((((HandlerController) controller).Client), request);
} }
public override void UnblockPlayer(IRpcController controller, UnblockPlayerRequest request, Action<NoData> done) public override void UnblockPlayer(IRpcController controller, UnblockPlayerRequest request, Action<NoData> done)
{ {
Logger.MethodTrace("UnblockPlayer()"); Logger.MethodTrace(MethodBase.GetCurrentMethod());
done(NoData.CreateBuilder().Build()); done(NoData.CreateBuilder().Build());
UserManager.UnblockAccount(((controller as HandlerController).Client), request); UserManager.UnblockAccount((((HandlerController) controller).Client), request);
} }
public override void BlockPlayerForSession(IRpcController controller, BlockPlayerRequest request, Action<NoData> done) public override void BlockPlayerForSession(IRpcController controller, BlockPlayerRequest request, Action<NoData> done)

View File

@ -100,7 +100,7 @@ namespace DiIiS_NA.Core.Helpers.Math
a = (uint)temp; a = (uint)temp;
b = (uint)(temp >> 32); b = (uint)(temp >> 32);
//Logger.Debug("Next(): a {0}, b {1}", a, b); //Logger.MethodTrace(MethodBase.GetCurrentMethod(), "a {0}, b {1}", a, b);
return (uint)a; return (uint)a;
} }

View File

@ -134,7 +134,7 @@ public class AnsiTarget : LogTarget
Logger.Level.RenameAccountLog => new Style(Color.DarkSlateGray3),// Logger.Level.RenameAccountLog => new Style(Color.DarkSlateGray3),//
Logger.Level.ChatMessage => new Style(Color.DarkSlateGray2),// Logger.Level.ChatMessage => new Style(Color.DarkSlateGray2),//
Logger.Level.Debug => new Style(Color.Olive),// Logger.Level.Debug => new Style(Color.Olive),//
Logger.Level.MethodTrace => new Style(Color.Purple),// Logger.Level.MethodTrace => new Style(Color.DarkOliveGreen1_1),//
Logger.Level.Trace => new Style(Color.BlueViolet),// Logger.Level.Trace => new Style(Color.BlueViolet),//
Logger.Level.Info => new Style(Color.White), Logger.Level.Info => new Style(Color.White),
Logger.Level.Success => new Style(Color.Green3_1), Logger.Level.Success => new Style(Color.Green3_1),

View File

@ -1,6 +1,7 @@
//Blizzless Project 2022 //Blizzless Project 2022
using System; using System;
using System.Globalization; using System.Globalization;
using System.Reflection;
using System.Text; using System.Text;
using DiIiS_NA.Core.Extensions; using DiIiS_NA.Core.Extensions;
using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem;
@ -100,11 +101,12 @@ namespace DiIiS_NA.Core.Logging
public void Trace(string message, params object[] args) => Log(Level.Trace, message, args); public void Trace(string message, params object[] args) => Log(Level.Trace, message, args);
/// <param name="message">The log message.</param> /// <param name="message">The log message.</param>
public void MethodTrace(string message) => Log(Level.MethodTrace, message, null); public void MethodTrace(MethodBase method, string message) => Log(Level.MethodTrace, $"$[olive]${method.Name}()$[/]$: " + message, null);
public void MethodTrace(MethodBase method) => Log(Level.MethodTrace, $"$[olive]${method.Name}()$[/]$", null);
/// <param name="message">The log message.</param> /// <param name="message">The log message.</param>
/// <param name="args">Additional arguments.</param> /// <param name="args">Additional arguments.</param>
public void MethodTrace(string message, params object[] args) => Log(Level.MethodTrace, message, args); public void MethodTrace(MethodBase method, string message, params object[] args) => Log(Level.MethodTrace, $"$[olive]${method.Name}()$[/]$: " +message, args);
/// <param name="message">The log message.</param> /// <param name="message">The log message.</param>
public void Debug(string message) => Log(Level.Debug, message, null); public void Debug(string message) => Log(Level.Debug, message, null);

View File

@ -11,6 +11,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -176,7 +177,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
{ {
lock (client._serviceLock) lock (client._serviceLock)
{ {
Logger.Trace("GrantAchievement(): id {0}", achievementId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "id {0}", achievementId);
if (client.Account.GameAccount.Achievements.Where(a => a.AchievementId == achievementId && a.Completion != -1).Count() > 0) return; if (client.Account.GameAccount.Achievements.Where(a => a.AchievementId == achievementId && a.Completion != -1).Count() > 0) return;
DBAchievements achievement = null; DBAchievements achievement = null;
var achs = DBSessions.SessionQueryWhere<DBAchievements>(dbi => var achs = DBSessions.SessionQueryWhere<DBAchievements>(dbi =>
@ -241,7 +242,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
{ {
lock (client._serviceLock) lock (client._serviceLock)
{ {
Logger.Trace("GrantCriteria(): id {0}", criteriaId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "id {0}", criteriaId);
D3.AchievementsStaticData.StaticCriteriaDefinition definition = null; D3.AchievementsStaticData.StaticCriteriaDefinition definition = null;
uint UCriteriaId = (uint)criteriaId; uint UCriteriaId = (uint)criteriaId;
@ -261,7 +262,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
var achievement = new DBAchievements(); var achievement = new DBAchievements();
if (achs.Count == 0) if (achs.Count == 0)
{ {
Logger.Trace("GrantCriteria(): creating new ach data"); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "creating new ach data");
achievement.DBGameAccount = client.Account.GameAccount.DBGameAccount; achievement.DBGameAccount = client.Account.GameAccount.DBGameAccount;
achievement.AchievementId = definition.ParentAchievementId; achievement.AchievementId = definition.ParentAchievementId;
achievement.IsHardcore = IsHardcore(definition.ParentAchievementId); achievement.IsHardcore = IsHardcore(definition.ParentAchievementId);
@ -270,7 +271,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
List<uint> crits = new List<uint>(); List<uint> crits = new List<uint>();
crits.Add(UCriteriaId); crits.Add(UCriteriaId);
achievement.Criteria = SerializeBytes(crits); achievement.Criteria = SerializeBytes(crits);
Logger.Trace("GrantCriteria(): {0} - {1} - {2} - {3}", client.Account.GameAccount.PersistentID, definition.ParentAchievementId, achievement.CompleteTime, UCriteriaId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} - {1} - {2} - {3}", client.Account.GameAccount.PersistentID, definition.ParentAchievementId, achievement.CompleteTime, UCriteriaId);
DBSessions.SessionSave(achievement); DBSessions.SessionSave(achievement);
} }
else else
@ -278,7 +279,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
achievement = achs.First(); achievement = achs.First();
if (!UnserializeBytes(achievement.Criteria).Contains(UCriteriaId)) if (!UnserializeBytes(achievement.Criteria).Contains(UCriteriaId))
{ {
Logger.Trace("GrantCriteria(): editing ach data, id: {0}", achievement.Id); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "editing ach data, id: {0}", achievement.Id);
List<uint> crits = UnserializeBytes(achievement.Criteria); List<uint> crits = UnserializeBytes(achievement.Criteria);
crits.Add(UCriteriaId); crits.Add(UCriteriaId);
achievement.Criteria = SerializeBytes(crits); achievement.Criteria = SerializeBytes(crits);
@ -287,7 +288,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
else return; else return;
} }
Logger.Trace("GrantCriteria(): ach data updated"); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "achievement data updated");
var record = D3.Achievements.CriteriaUpdateRecord.CreateBuilder() var record = D3.Achievements.CriteriaUpdateRecord.CreateBuilder()
.SetCriteriaId32AndFlags8(UCriteriaId) .SetCriteriaId32AndFlags8(UCriteriaId)
@ -340,7 +341,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
{ {
achievement = achs.First(); achievement = achs.First();
Logger.Trace("GrantCriteria(): editing ach data, id: {0}", achievement.Id); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "editing ach data, id: {0}", achievement.Id);
List<uint> crits = UnserializeBytes(achievement.Criteria); List<uint> crits = UnserializeBytes(achievement.Criteria);
crits.Add(UCriteriaId); crits.Add(UCriteriaId);
achievement.Criteria = SerializeBytes(crits); achievement.Criteria = SerializeBytes(crits);
@ -377,7 +378,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
lock (client._serviceLock) lock (client._serviceLock)
{ {
if (additionalQuantity == 0) return; if (additionalQuantity == 0) return;
Logger.Debug("UpdateQuantity(): id {0}", achievementId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "id {0}", achievementId);
if (client.Account.GameAccount.Achievements.Where(a => a.AchievementId == achievementId && a.Completion != -1).Count() > 0) return; if (client.Account.GameAccount.Achievements.Where(a => a.AchievementId == achievementId && a.Completion != -1).Count() > 0) return;
ulong mainCriteriaId = GetMainCriteria(achievementId); ulong mainCriteriaId = GetMainCriteria(achievementId);
@ -410,7 +411,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
var achievement = new DBAchievements(); var achievement = new DBAchievements();
if (achs.Count == 0) if (achs.Count == 0)
{ {
Logger.Debug("UpdateQuantity(): creating new ach data"); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "creating new ach data");
achievement.DBGameAccount = client.Account.GameAccount.DBGameAccount; achievement.DBGameAccount = client.Account.GameAccount.DBGameAccount;
achievement.AchievementId = achievementId; achievement.AchievementId = achievementId;
achievement.IsHardcore = IsHardcore(achievementId); achievement.IsHardcore = IsHardcore(achievementId);
@ -423,7 +424,7 @@ namespace DiIiS_NA.GameServer.AchievementSystem
else else
{ {
achievement = achs.First(); achievement = achs.First();
Logger.Trace("UpdateQuantity(): editing ach data, id: {0}", achievement.Id); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "editing ach data, id: {0}", achievement.Id);
achievement.Quantity = (int)newQuantity; achievement.Quantity = (int)newQuantity;
DBSessions.SessionUpdate(achievement); DBSessions.SessionUpdate(achievement);
} }

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.Logging;
using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem;
using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem;
@ -12,7 +13,7 @@ namespace DiIiS_NA.GameServer.Core
{ {
public class InventoryGrid : IRevealable public class InventoryGrid : IRevealable
{ {
static readonly Logger Logger = LogManager.CreateLogger("IG"); static readonly Logger Logger = LogManager.CreateLogger(nameof(InventoryGrid));
public int EquipmentSlot { get; private set; } public int EquipmentSlot { get; private set; }
public int Rows { get { return _backpack.GetLength(0); } } public int Rows { get { return _backpack.GetLength(0); } }
@ -74,7 +75,6 @@ namespace DiIiS_NA.GameServer.Core
} }
return new InventorySize() { Width = 1, Height = 1 }; return new InventorySize() { Width = 1, Height = 1 };
} }
@ -167,7 +167,7 @@ namespace DiIiS_NA.GameServer.Core
foreach (var itm in baseItems) foreach (var itm in baseItems)
have += itm.Attributes[GameAttribute.ItemStackQuantityLo]; have += itm.Attributes[GameAttribute.ItemStackQuantityLo];
Logger.Trace("HaveEnough(): gbid {0}, count {1}", GBid, have); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gbid {0}, count {1}", GBid, have);
return (have >= count); return (have >= count);
} }

View File

@ -216,7 +216,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
{ {
if (PresetPowers.ContainsKey(powerSNO)) if (PresetPowers.ContainsKey(powerSNO))
{ {
// Logger.Debug("AddPresetPower(): power sno {0} already defined for monster \"{1}\"", // Logger.MethodTrace(MethodBase.GetCurrentMethod(), "power sno {0} already defined for monster \"{1}\"",
//powerSNO, this.Body.ActorSNO.Name); //powerSNO, this.Body.ActorSNO.Name);
return; return;
} }

View File

@ -455,7 +455,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
if (PresetPowers.ContainsKey(powerSNO)) if (PresetPowers.ContainsKey(powerSNO))
{ {
Logger.Debug($"Monster $[red]$\"{Body.Name}\"$[/]$ already has power {powerSNO}."); Logger.Debug($"Monster $[red]$\"{Body.Name}\"$[/]$ already has power {powerSNO}.");
// Logger.Debug("AddPresetPower(): power sno {0} already defined for monster \"{1}\"", // Logger.MethodTrace(MethodBase.GetCurrentMethod(), "power sno {0} already defined for monster \"{1}\"",
//powerSNO, this.Body.ActorSNO.Name); //powerSNO, this.Body.ActorSNO.Name);
return; return;
} }

View File

@ -2,6 +2,7 @@
using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.Logging;
using System; using System;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WatsonTcp; using WatsonTcp;
@ -101,129 +102,129 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
public void RegisterGameServer(string ip, int port) public void RegisterGameServer(string ip, int port)
{ {
Logger.Debug("RegisterGameServer(): ip {0}, port {1}", ip, port); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "ip {0}, port {1}", ip, port);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"rngsr|{ip}/{port}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"rngsr|{ip}/{port}"));
} }
public void RegisterPvPGameServer(string ip, int port) public void RegisterPvPGameServer(string ip, int port)
{ {
Logger.Debug("RegisterPvPGameServer(): ip {0}, port {1}", ip, port); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "ip {0}, port {1}", ip, port);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"rnpvpgsr|{ip}/{port}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"rnpvpgsr|{ip}/{port}"));
} }
public void GrantAchievement(ulong gameAccountId, ulong achievementId) public void GrantAchievement(ulong gameAccountId, ulong achievementId)
{ {
Logger.Debug("GrantAchievement(): gameAccountId {0}, achievementId {1}", gameAccountId, achievementId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, achievementId {1}", gameAccountId, achievementId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"grachi|{gameAccountId}/{achievementId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"grachi|{gameAccountId}/{achievementId}"));
} }
public void GrantCriteria(ulong gameAccountId, ulong criteriaId) public void GrantCriteria(ulong gameAccountId, ulong criteriaId)
{ {
Logger.Debug("GrantCriteria(): gameAccountId {0}, criteriaId {1}", gameAccountId, criteriaId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, criteriaId {1}", gameAccountId, criteriaId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"gcrit|{gameAccountId}/{criteriaId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"gcrit|{gameAccountId}/{criteriaId}"));
} }
public void UpdateAchievementCounter(ulong gameAccountId, int type, uint addCounter, int comparand, ulong achievement = 0) public void UpdateAchievementCounter(ulong gameAccountId, int type, uint addCounter, int comparand, ulong achievement = 0)
{ {
Logger.Debug("UpdateAchievementCounter(): type {0}, addCounter {1}, comparand {2}", type, addCounter, comparand); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "type {0}, addCounter {1}, comparand {2}", type, addCounter, comparand);
BattleNetSocketSend(Encoding.UTF8.GetBytes( BattleNetSocketSend(Encoding.UTF8.GetBytes(
$"uoacce|{gameAccountId}/{type}/{addCounter}/{comparand}/{achievement}")); $"uoacce|{gameAccountId}/{type}/{addCounter}/{comparand}/{achievement}"));
} }
public void UpdateSingleAchievementCounter(ulong gameAccountId, ulong achId, uint addCounter) public void UpdateSingleAchievementCounter(ulong gameAccountId, ulong achId, uint addCounter)
{ {
Logger.Debug("UpdateSingleAchievementCounter(): type {0}, addCounter {1}", achId, addCounter); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "type {0}, addCounter {1}", achId, addCounter);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"upsnaccr|{gameAccountId}/{achId}/{addCounter}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"upsnaccr|{gameAccountId}/{achId}/{addCounter}"));
} }
public void UpdateQuantity(ulong gameAccountId, ulong achievementId, uint addCounter) public void UpdateQuantity(ulong gameAccountId, ulong achievementId, uint addCounter)
{ {
Logger.Debug("UpdateQuantity(): achievementId {0}, addCounter {1}", achievementId, addCounter); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "achievementId {0}, addCounter {1}", achievementId, addCounter);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"upequt|{gameAccountId}/{achievementId}/{addCounter}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"upequt|{gameAccountId}/{achievementId}/{addCounter}"));
} }
public void CheckQuestCriteria(ulong gameAccountId, int questId, bool isCoop) public void CheckQuestCriteria(ulong gameAccountId, int questId, bool isCoop)
{ {
Logger.Debug("CheckQuestCriteria(): gameAccountId {0}, questId {1}, coop {2}", gameAccountId, questId, isCoop); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, questId {1}, coop {2}", gameAccountId, questId, isCoop);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"cqc|{gameAccountId}/{questId}/{(isCoop ? "True" : "False")}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"cqc|{gameAccountId}/{questId}/{(isCoop ? "True" : "False")}"));
} }
public void CheckKillMonsterCriteria(ulong gameAccountId, int actorId, int type, bool isHardcore) public void CheckKillMonsterCriteria(ulong gameAccountId, int actorId, int type, bool isHardcore)
{ {
Logger.Debug("CheckKillMonsterCriteria(): gameAccountId {0}, actorId {1}, type {2}, hc {3}", gameAccountId, actorId, type, isHardcore); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, actorId {1}, type {2}, hc {3}", gameAccountId, actorId, type, isHardcore);
BattleNetSocketSend(Encoding.UTF8.GetBytes( BattleNetSocketSend(Encoding.UTF8.GetBytes(
$"ckmc|{gameAccountId}/{actorId}/{type}/{(isHardcore ? "True" : "False")}")); $"ckmc|{gameAccountId}/{actorId}/{type}/{(isHardcore ? "True" : "False")}"));
} }
public void CheckSalvageItemCriteria(ulong gameAccountId, int itemId) public void CheckSalvageItemCriteria(ulong gameAccountId, int itemId)
{ {
Logger.Debug("CheckSalvageItemCriteria(): gameAccountId {0}, itemId {1}", gameAccountId, itemId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, itemId {1}", gameAccountId, itemId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"csic|{gameAccountId}/{itemId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"csic|{gameAccountId}/{itemId}"));
} }
public void CheckLevelCap(ulong gameAccountId) public void CheckLevelCap(ulong gameAccountId)
{ {
Logger.Debug("CheckLevelCap(): gameAccountId {0}", gameAccountId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}", gameAccountId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"clc|{gameAccountId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"clc|{gameAccountId}"));
} }
public void CheckConversationCriteria(ulong gameAccountId, int convId) public void CheckConversationCriteria(ulong gameAccountId, int convId)
{ {
Logger.Debug("CheckConversationCriteria(): gameAccountId {0}, convId {1}", gameAccountId, convId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, convId {1}", gameAccountId, convId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"ccc|{gameAccountId}/{convId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"ccc|{gameAccountId}/{convId}"));
} }
public void CheckLevelAreaCriteria(ulong gameAccountId, int laId) public void CheckLevelAreaCriteria(ulong gameAccountId, int laId)
{ {
Logger.Debug("CheckLevelAreaCriteria(): gameAccountId {0}, laId {1}", gameAccountId, laId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, laId {1}", gameAccountId, laId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"clac|{gameAccountId}/{laId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"clac|{gameAccountId}/{laId}"));
} }
public void UpdateClient(ulong gameAccountId, int level, int screen) public void UpdateClient(ulong gameAccountId, int level, int screen)
{ {
Logger.Debug("UpdateClient(): gameAccountId {0}", gameAccountId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}", gameAccountId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"uc|{gameAccountId}/{level}/{screen}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"uc|{gameAccountId}/{level}/{screen}"));
} }
public void PlayerJoined(int gameId) public void PlayerJoined(int gameId)
{ {
Logger.Debug("PlayerJoined(): gameId {0}", gameId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameId {0}", gameId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"gpj|{gameId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"gpj|{gameId}"));
} }
public void PlayerLeft(int gameId) public void PlayerLeft(int gameId)
{ {
Logger.Debug("PlayerLeft(): gameId {0}", gameId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameId {0}", gameId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"gpl|{gameId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"gpl|{gameId}"));
} }
public void SetGamePublic(int gameId) public void SetGamePublic(int gameId)
{ {
Logger.Debug("SetGamePublic(): gameId {0}", gameId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameId {0}", gameId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"gsp|{gameId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"gsp|{gameId}"));
} }
public void PvPSaveProgress(ulong gameAccountId, int kills, int wins, int gold) public void PvPSaveProgress(ulong gameAccountId, int kills, int wins, int gold)
{ {
Logger.Debug("PvPSaveProgress(): gameAccountId {0}", gameAccountId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "game account id {0}", gameAccountId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"pvpsp|{gameAccountId}/{kills}/{wins}/{gold}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"pvpsp|{gameAccountId}/{kills}/{wins}/{gold}"));
} }
public void ParagonLevelUp(ulong gameAccountId) public void ParagonLevelUp(ulong gameAccountId)
{ {
Logger.Debug("ParagonLevelUp(): gameAccountId {0}", gameAccountId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "game account id {0}", gameAccountId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"plu|{gameAccountId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"plu|{gameAccountId}"));
} }
public void ToonStateChanged(ulong toonId) public void ToonStateChanged(ulong toonId)
{ {
Logger.Debug("ToonStateChanged(): toonID {0}", toonId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "game account id {0}", toonId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"tsc|{toonId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"tsc|{toonId}"));
} }
public void UniqueItemIdentified(ulong gameAccountId, ulong itemId) public void UniqueItemIdentified(ulong gameAccountId, ulong itemId)
{ {
Logger.Debug("UniqueItemIdentified(): gameAccountId {0}, itemId {1}", gameAccountId, itemId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gameAccountId {0}, itemId {1}", gameAccountId, itemId);
BattleNetSocketSend(Encoding.UTF8.GetBytes($"uii|{gameAccountId}/{itemId}")); BattleNetSocketSend(Encoding.UTF8.GetBytes($"uii|{gameAccountId}/{itemId}"));
} }
} }

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection;
using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem;
using DiIiS_NA.GameServer.GSSystem.QuestSystem; using DiIiS_NA.GameServer.GSSystem.QuestSystem;
using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem;
@ -265,7 +266,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
} }
OnQuestProgress(); OnQuestProgress();
AutoSetQuestMarker(); AutoSetQuestMarker();
Logger.Trace(" (Advance) Advanced to quest {0}, step {1}", Game.CurrentQuest, Game.CurrentStep); Logger.Trace("$[underline white]$(Advance)$[/]$ Advanced to quest $[underline white]${0}$[/]$, step $[underline white]${1}$[/]$", Game.CurrentQuest, Game.CurrentStep);
} }
public void SideAdvance() public void SideAdvance()
@ -536,7 +537,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{ {
if (Game.QuestProgress.QuestTriggers.Count == 1) if (Game.QuestProgress.QuestTriggers.Count == 1)
{ {
Logger.MethodTrace($"AutoSetQuestMarker() - {Game.QuestProgress.QuestTriggers.Count} triggers found"); Logger.MethodTrace(MethodBase.GetCurrentMethod(), $"{Game.QuestProgress.QuestTriggers.Count} triggers found");
var trigger = Game.QuestProgress.QuestTriggers.First(); var trigger = Game.QuestProgress.QuestTriggers.First();
if (trigger.Value.triggerType == DiIiS_NA.Core.MPQ.FileFormats.QuestStepObjectiveType.InteractWithActor) if (trigger.Value.triggerType == DiIiS_NA.Core.MPQ.FileFormats.QuestStepObjectiveType.InteractWithActor)
foreach (var world in Game.Worlds) foreach (var world in Game.Worlds)

View File

@ -2,6 +2,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.Logging;
using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.Core.Helpers.Math;
using DiIiS_NA.Core.Storage.AccountDataBase.Entities; using DiIiS_NA.Core.Storage.AccountDataBase.Entities;
@ -1330,7 +1331,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem
return; return;
} }
Logger.Warn("OnRequestUse(): gbid {0} not implemented", GBHandle.GBID); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "gbid {0} not implemented", GBHandle.GBID);
} }
private void SwitchWingsBuff(Player player, int powerId) private void SwitchWingsBuff(Player player, int powerId)

View File

@ -3,6 +3,7 @@ using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Reflection;
using DiIiS_NA.Core.Helpers.Hash; using DiIiS_NA.Core.Helpers.Hash;
using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.Core.Helpers.Math;
using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.Logging;
@ -787,7 +788,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
public Item SpawnRandomEquip(Actor source, Player player, int forceQuality = -1, int forceLevel = -1, public Item SpawnRandomEquip(Actor source, Player player, int forceQuality = -1, int forceLevel = -1,
GameBalance.ItemTypeTable type = null, bool canBeUnidentified = true, ToonClass toonClass = ToonClass.Unknown) GameBalance.ItemTypeTable type = null, bool canBeUnidentified = true, ToonClass toonClass = ToonClass.Unknown)
{ {
Logger.MethodTrace("SpawnRandomEquip(): quality {0}", forceQuality); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "quality {0}", forceQuality);
if (player != null) if (player != null)
{ {
int level = (forceLevel > 0 ? forceLevel : source.Attributes[GameAttribute.Level]); int level = (forceLevel > 0 ? forceLevel : source.Attributes[GameAttribute.Level]);
@ -815,7 +816,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
} }
public void SpawnRandomLegOrSetEquip(Actor source, Player player) public void SpawnRandomLegOrSetEquip(Actor source, Player player)
{ {
//Logger.Debug("SpawnRandomEquip(): quality {0}", forceQuality); //Logger.MethodTrace(MethodBase.GetCurrentMethod(), "quality {0}", forceQuality);
if (player != null) if (player != null)
{ {
var item = ItemGenerator.GenerateLegOrSetRandom(player); var item = ItemGenerator.GenerateLegOrSetRandom(player);

View File

@ -60,6 +60,7 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect;
using DiIiS_NA.LoginServer.AccountsSystem; using DiIiS_NA.LoginServer.AccountsSystem;
//Blizzless Project 2022 //Blizzless Project 2022
using System.Drawing; using System.Drawing;
using System.Reflection;
//Blizzless Project 2022 //Blizzless Project 2022
using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem;
//Blizzless Project 2022 //Blizzless Project 2022
@ -2887,7 +2888,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable
//* //*
private void OnHirelingDismiss(GameClient client, PetAwayMessage message) private void OnHirelingDismiss(GameClient client, PetAwayMessage message)
{ {
Logger.Trace("OnPetDismiss(): {0}", message.ActorID); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", message.ActorID);
var petId = World.GetGlobalId(this, message.ActorID); var petId = World.GetGlobalId(this, message.ActorID);
var pet = World.GetActorByGlobalId(petId); var pet = World.GetActorByGlobalId(petId);
if (pet is Hireling) if (pet is Hireling)
@ -2898,7 +2899,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable
private void OnHirelingRequestLearnSkill(GameClient client, HirelingRequestLearnSkillMessage message) private void OnHirelingRequestLearnSkill(GameClient client, HirelingRequestLearnSkillMessage message)
{ {
Logger.Debug("OnHirelingRequestLearnSkill(): {0} - {1}", message.HirelingID, message.PowerSNOId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0} - {1}", message.HirelingID, message.PowerSNOId);
var hireling = World.GetActorByGlobalId(World.GetGlobalId(this, message.HirelingID)); var hireling = World.GetActorByGlobalId(World.GetGlobalId(this, message.HirelingID));
if (hireling == null) return; if (hireling == null) return;
switch (hireling.Attributes[GameAttribute.Hireling_Class]) switch (hireling.Attributes[GameAttribute.Hireling_Class])
@ -4232,7 +4233,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable
public void SaveStats() //Save 6 primary stats into DB for showing on hero screen public void SaveStats() //Save 6 primary stats into DB for showing on hero screen
{ {
//Logger.Debug("SaveStats(): Strength {0}", this.Inventory.GetItemBonus(GameAttribute.Strength_Item).ToString("F0")); //Logger.MethodTrace(MethodBase.GetCurrentMethod(), "Strength {0}", this.Inventory.GetItemBonus(GameAttribute.Strength_Item).ToString("F0"));
var damageFromWeapon = var damageFromWeapon =
(Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min_Total, 0) + (Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min_Total, 0) +
Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Delta_Total, 0)) * (1f + PrimaryAttribute / 100f); Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Delta_Total, 0)) * (1f + PrimaryAttribute / 100f);

View File

@ -1,6 +1,7 @@
using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
@ -12,24 +13,39 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem
{ {
static readonly Logger Logger = LogManager.CreateLogger(); static readonly Logger Logger = LogManager.CreateLogger();
private static Dictionary<int, Type> _implementations = new Dictionary<int, Type>(); private static readonly Dictionary<int, Type> _implementations = new();
private static PowerScript TryActivate(int powerSno)
{
try
{
return (PowerScript)Activator.CreateInstance(_implementations[powerSno]);
}
catch(Exception ex)
{
Logger.FatalException(ex, $"Failed to activate power {powerSno}");
return null;
}
}
public static PowerScript CreateImplementationForPowerSNO(int powerSNO) public static PowerScript CreateImplementationForPowerSNO(int powerSNO)
{ {
if (_implementations.ContainsKey(powerSNO)) if (_implementations.ContainsKey(powerSNO))
{ {
PowerScript script = (PowerScript)Activator.CreateInstance(_implementations[powerSNO]); PowerScript script = TryActivate(powerSNO);
script.PowerSNO = powerSNO; if (script != null)
return script; {
} script.PowerSNO = powerSNO;
else return script;
{ }
#if DEBUG
if (powerSNO != 30021 && powerSNO != 30022 && powerSNO != -1)
Logger.Info("Unimplemented power: {0}", powerSNO); //for hiding annoying messages
#endif
return null;
} }
#if DEBUG
if (powerSNO != 30021 && powerSNO != 30022 && powerSNO != -1) //for hiding annoying messages
Logger.Info($"$[underline red]$Unimplemented power:$[/]$ $[underline]${powerSNO}$[/]$");
#else
if (powerSNO != 30021 && powerSNO != 30022 && powerSNO != -1) //for hiding annoying messages
Logger.Info($"$[underline red]$Unimplemented power:$[/]$ $[underline]${powerSNO}$[/]$");
#endif
return null;
} }
public static bool HasImplementationForPowerSNO(int powerSNO) public static bool HasImplementationForPowerSNO(int powerSNO)

View File

@ -2,6 +2,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -23,7 +24,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents
public override void Execute(MapSystem.World world) public override void Execute(MapSystem.World world)
{ {
Logger.Trace("StartSideQuest(): {0}", QuestId); Logger.MethodTrace(MethodBase.GetCurrentMethod(), "{0}", QuestId);
world.Game.QuestManager.LaunchSideQuest(QuestId, ForceAbandon); world.Game.QuestManager.LaunchSideQuest(QuestId, ForceAbandon);
} }
} }

View File

@ -40,7 +40,7 @@ namespace DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Game
public void Handle(GameClient client) public void Handle(GameClient client)
{ {
Logger.Info("Client {0}, enter in game. Server loaded.", client.BnetClient.Account.BattleTag); Logger.Info("Client $[underline]${0}$[/]$, joined game.", client.BnetClient.Account.Email);
} }
} }
} }