Skip to content

Commit

Permalink
Added some packets and a handler in MAS
Browse files Browse the repository at this point in the history
  • Loading branch information
Dnawrkshp committed Dec 9, 2021
1 parent 367565c commit 589e1ed
Show file tree
Hide file tree
Showing 5 changed files with 211 additions and 2 deletions.
4 changes: 2 additions & 2 deletions RT.Models/Lobby/MediusSetLobbyWorldFilterResponse1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

namespace RT.Models
{
[MediusMessage(NetMessageTypes.MessageClassLobbyExt, MediusLobbyExtMessageIds.SetLobbyWorldFilterResponse)]
public class MediusSetLobbyWorldFilterResponse : BaseLobbyExtMessage, IMediusResponse
[MediusMessage(NetMessageTypes.MessageClassLobbyExt, MediusLobbyExtMessageIds.SetLobbyWorldFilterResponse1)]
public class MediusSetLobbyWorldFilterResponse1 : BaseLobbyExtMessage, IMediusResponse
{

public override byte PacketType => (byte)MediusLobbyExtMessageIds.SetLobbyWorldFilterResponse;
Expand Down
59 changes: 59 additions & 0 deletions RT.Models/Lobby/MediusSetLocalizationParamsRequest1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using RT.Common;
using Server.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace RT.Models
{
[MediusMessage(NetMessageTypes.MessageClassLobbyExt, MediusLobbyExtMessageIds.SetLocalizationParams1)]
public class MediusSetLocalizationParamsRequest1 : BaseLobbyMessage, IMediusRequest
{
public override byte PacketType => (byte)MediusLobbyExtMessageIds.SetLocalizationParams1;

public MessageId MessageID { get; set; }

public string SessionKey; // SESSIONKEY_MAXLEN
public MediusCharacterEncodingType CharacterEncoding;
public MediusLanguageType Language;

public override void Deserialize(Server.Common.Stream.MessageReader reader)
{
//
base.Deserialize(reader);

//
MessageID = reader.Read<MessageId>();

//
SessionKey = reader.ReadString(Constants.SESSIONKEY_MAXLEN);
reader.ReadBytes(2);

CharacterEncoding = reader.Read<MediusCharacterEncodingType>();
Language = reader.Read<MediusLanguageType>();
}

public override void Serialize(Server.Common.Stream.MessageWriter writer)
{
//
base.Serialize(writer);

//
writer.Write(MessageID ?? MessageId.Empty);

//
writer.Write(SessionKey, Constants.SESSIONKEY_MAXLEN);
}


public override string ToString()
{
return base.ToString() + " " +
$"MessageID:{MessageID} " +
$"SessionKey:{SessionKey} " +
$"CharacterEncoding:{CharacterEncoding} " +
$"Language:{Language}";
}
}
}
63 changes: 63 additions & 0 deletions RT.Models/Lobby/MediusTicketLoginRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
using RT.Common;
using Server.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace RT.Models
{
[MediusMessage(NetMessageTypes.MessageClassLobbyExt, MediusLobbyExtMessageIds.TicketLogin)]
public class MediusTicketLoginRequest : BaseLobbyMessage, IMediusRequest
{
public override byte PacketType => (byte)MediusLobbyExtMessageIds.TicketLogin;

public MessageId MessageID { get; set; }

public string SessionKey; // SESSIONKEY_MAXLEN
public string Username;
public string Password = "TestPass";
public string UNK1;


public override void Deserialize(Server.Common.Stream.MessageReader reader)
{
//
base.Deserialize(reader);

//
MessageID = reader.Read<MessageId>();

//
SessionKey = reader.ReadString(Constants.SESSIONKEY_MAXLEN);
reader.ReadBytes(88);
Username = reader.ReadString(Constants.ACCOUNTNAME_MAXLEN);
reader.ReadBytes(20);
UNK1 = reader.ReadString(24);


}

public override void Serialize(Server.Common.Stream.MessageWriter writer)
{
//
base.Serialize(writer);

//
writer.Write(MessageID ?? MessageId.Empty);

//
writer.Write(SessionKey, Constants.SESSIONKEY_MAXLEN);
}


public override string ToString()
{
return base.ToString() + " " +
$"MessageID:{MessageID} " +
$"SessionKey:{SessionKey} " +
$"Username:{Username} " +
$"UNK1:{UNK1}";
}
}
}
75 changes: 75 additions & 0 deletions RT.Models/Lobby/MediusTicketLoginResponse.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
using RT.Common;
using Server.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;

namespace RT.Models
{
[MediusMessage(NetMessageTypes.MessageClassLobbyExt, MediusLobbyExtMessageIds.TicketLoginResponse)]
public class MediusTicketLoginResponse : BaseLobbyExtMessage, IMediusResponse
{

public override byte PacketType => (byte)MediusLobbyExtMessageIds.TicketLoginResponse;

public bool IsSuccess => StatusCode >= 0;

public MessageId MessageID { get; set; }

public MediusCallbackStatus StatusCode;
public int AccountID;
public MediusAccountType AccountType;
public int MediusWorldID;
public NetConnectionInfo ConnectInfo;

public override void Deserialize(Server.Common.Stream.MessageReader reader)
{
//
base.Deserialize(reader);

//
MessageID = reader.Read<MessageId>();

//
reader.ReadBytes(3);
StatusCode = reader.Read<MediusCallbackStatus>();
reader.ReadBytes(29);
AccountID = reader.ReadInt32();
AccountType = reader.Read<MediusAccountType>();
MediusWorldID = reader.ReadInt32();
ConnectInfo = reader.Read<NetConnectionInfo>();
}

public override void Serialize(Server.Common.Stream.MessageWriter writer)
{
//
base.Serialize(writer);

//
writer.Write(MessageID ?? MessageId.Empty);

//
writer.Write(new byte[3]);
writer.Write(StatusCode);
writer.Write(new byte[29]);
writer.Write(AccountID);
writer.Write(AccountType);
writer.Write(MediusWorldID);
writer.Write(ConnectInfo);
}


public override string ToString()
{
return base.ToString() + " " +
$"MessageID:{MessageID} " +
$"StatusCode:{StatusCode} " +
$"AccountID:{AccountID} " +
$"AccountType:{AccountType} " +
$"MediusWorldID:{MediusWorldID} " +
$"ConnectInfo:{ConnectInfo}";
}
}
}
12 changes: 12 additions & 0 deletions Server.Medius/Medius/MAS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,18 @@ protected virtual void ProcessMediusMessage(BaseMediusMessage message, IChannel
});
break;
}
case MediusSetLocalizationParamsRequest1 setLocalizationParamsRequest:
{
if (data.ClientObject == null)
throw new InvalidOperationException($"INVALID OPERATION: {clientChannel} sent {setLocalizationParamsRequest} without a session.");

data.ClientObject.Queue(new MediusSetLocalizationParamsResponse()
{
MessageID = setLocalizationParamsRequest.MessageID,
StatusCode = MediusCallbackStatus.MediusSuccess
});
break;
}
case MediusDnasSignaturePost dnasSignaturePost:
{

Expand Down

0 comments on commit 589e1ed

Please sign in to comment.