diff --git a/console/src/lib/net/Client.cs b/console/src/lib/net/Client.cs index 34553dfb..32af073d 100644 --- a/console/src/lib/net/Client.cs +++ b/console/src/lib/net/Client.cs @@ -115,7 +115,7 @@ namespace pokerth_lib init.Properties.Add(NetPacket.PropType.RequestedVersionMajor, "5"); init.Properties.Add(NetPacket.PropType.RequestedVersionMinor, "0"); init.Properties.Add(NetPacket.PropType.PlayerName, m_data.MyName); - init.Properties.Add(NetPacket.PropType.PlayerPassword, ""); + init.Properties.Add(NetPacket.PropType.ServerPassword, ""); m_sender.Send(init); } diff --git a/console/src/lib/net/NetPacket.cs b/console/src/lib/net/NetPacket.cs index 7401e5c1..72b0c41f 100644 --- a/console/src/lib/net/NetPacket.cs +++ b/console/src/lib/net/NetPacket.cs @@ -95,7 +95,7 @@ namespace pokerth_lib RequestedVersionMinor, PlayerId, PlayerName, - PlayerPassword, + ServerPassword, PlayerFlags, PlayerRights, PlayerAction, @@ -160,6 +160,138 @@ namespace pokerth_lib PlayerCards, } + public static NetPacket Create(int type) + { + NetPacket tmpPacket = null; + switch (type) + { + // Virtual constructor. + case NetTypeInit : + tmpPacket = new NetPacketInit(); + break; + case NetTypeInitAck : + tmpPacket = new NetPacketInitAck(); + break; + //case NetTypeRetrieveAvatar : + //case NetTypeAvatarHeader : + //case NetTypeAvatarFile : + //case NetTypeAvatarEnd : + //case NetTypeUnknownAvatar : + case NetTypeGameListNew : + tmpPacket = new NetPacketGameListNew(); + break; + case NetTypeGameListUpdate : + tmpPacket = new NetPacketGameListUpdate(); + break; + case NetTypeGameListPlayerJoined : + tmpPacket = new NetPacketGameListPlayerJoined(); + break; + case NetTypeGameListPlayerLeft : + tmpPacket = new NetPacketGameListPlayerLeft(); + break; + //case NetTypeGameListAdminChanged : + // tmpPacket = new NetPacketGameListAdminChanged(); + // break; + case NetTypeRetrievePlayerInfo : + tmpPacket = new NetPacketRetrievePlayerInfo(); + break; + case NetTypePlayerInfo : + tmpPacket = new NetPacketPlayerInfo(); + break; + //case NetTypeUnknownPlayerId : + case NetTypeUnsubscribeGameList : + tmpPacket = new NetPacketUnsubscribeGameList(); + break; + //case NetTypeResubscribeGameList : + case NetTypeCreateGame : + tmpPacket = new NetPacketCreateGame(); + break; + case NetTypeJoinGame : + tmpPacket = new NetPacketJoinGame(); + break; + case NetTypeJoinGameAck : + tmpPacket = new NetPacketJoinGameAck(); + break; + //case NetTypeJoinGameFailed : + // tmpPacket = new NetPacketJoinGameFailed(); + // break; + //case NetTypePlayerJoined : + //case NetTypePlayerLeft : + //case NetTypeGameAdminChanged : + //case NetTypeKickPlayer : + case NetTypeLeaveCurrentGame : + tmpPacket = new NetPacketLeaveCurrentGame(); + break; + case NetTypeStartEvent : + tmpPacket = new NetPacketStartEvent(); + break; + case NetTypeStartEventAck : + tmpPacket = new NetPacketStartEventAck(); + break; + case NetTypeGameStart : + tmpPacket = new NetPacketGameStart(); + break; + case NetTypeHandStart : + tmpPacket = new NetPacketHandStart(); + break; + case NetTypePlayersTurn : + tmpPacket = new NetPacketPlayersTurn(); + break; + case NetTypePlayersAction : + tmpPacket = new NetPacketPlayersAction(); + break; + case NetTypePlayersActionDone : + tmpPacket = new NetPacketPlayersActionDone(); + break; + case NetTypePlayersActionRejected : + tmpPacket = new NetPacketPlayersActionRejected(); + break; + case NetTypeDealFlopCards : + tmpPacket = new NetPacketDealFlopCards(); + break; + case NetTypeDealTurnCard : + tmpPacket = new NetPacketDealTurnCard(); + break; + case NetTypeDealRiverCard : + tmpPacket = new NetPacketDealRiverCard(); + break; + case NetTypeAllInShowCards : + tmpPacket = new NetPacketAllInShowCards(); + break; + case NetTypeEndOfHandShowCards : + tmpPacket = new NetPacketEndOfHandShowCards(); + break; + case NetTypeEndOfHandHideCards : + tmpPacket = new NetPacketEndOfHandHideCards(); + break; + case NetTypeEndOfGame : + tmpPacket = new NetPacketEndOfGame(); + break; + //case NetTypeAskKickPlayer : + //case NetTypeAskKickPlayerDenied : + //case NetTypeStartKickPlayerPetition : + //case NetTypeVoteKickPlayer : + //case NetTypeVoteKickPlayerAck : + //case NetTypeVoteKickPlayerDenied : + //case NetTypeKickPlayerPetitionUpdate : + //case NetTypeEndKickPlayerPetition : + //case NetTypeStatisticsChanged : + case NetTypeRemovedFromGame : + tmpPacket = new NetPacketRemovedFromGame(); + break; + //case NetTypeTimeoutWarning : + //case NetTypeResetTimeout : + //case NetTypeSendChatText : + case NetTypeChatText : + tmpPacket = new NetPacketChatText(); + break; + case NetTypeError : + tmpPacket = new NetPacketError(); + break; + } + return tmpPacket; + } + public static NetPacket Create(int type, int size, BinaryReader reader) { NetPacket tmpPacket = null; diff --git a/console/src/lib/net/NetPacketCreateGame.cs b/console/src/lib/net/NetPacketCreateGame.cs index ccea32a1..65166956 100644 --- a/console/src/lib/net/NetPacketCreateGame.cs +++ b/console/src/lib/net/NetPacketCreateGame.cs @@ -25,7 +25,7 @@ using System.Net.Sockets; using System.IO; -namespace pokerth_lib.src +namespace pokerth_lib { class NetPacketCreateGame : NetPacket { diff --git a/console/src/lib/net/NetPacketInit.cs b/console/src/lib/net/NetPacketInit.cs index 376c0619..a3759636 100644 --- a/console/src/lib/net/NetPacketInit.cs +++ b/console/src/lib/net/NetPacketInit.cs @@ -44,7 +44,7 @@ namespace pokerth_lib MemoryStream memStream = new MemoryStream(); BinaryWriter w = new BinaryWriter(memStream); - string playerPassword = Properties[PropType.PlayerPassword]; + string playerPassword = Properties[PropType.ServerPassword]; byte[] tmpPassword = Encoding.UTF8.GetBytes(playerPassword); int passwordWithPadding = AddPadding(tmpPassword.Length); string playerName = Properties[PropType.PlayerName]; diff --git a/console/src/lib/net/NetPacketUnsubscribeGameList.cs b/console/src/lib/net/NetPacketUnsubscribeGameList.cs new file mode 100644 index 00000000..55e1a290 --- /dev/null +++ b/console/src/lib/net/NetPacketUnsubscribeGameList.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using System.Net.Sockets; +using System.IO; + + +namespace pokerth_lib +{ + class NetPacketUnsubscribeGameList : NetPacket + { + public NetPacketUnsubscribeGameList() + : base(NetPacket.NetTypeUnsubscribeGameList) + { + } + + public NetPacketUnsubscribeGameList(int size, BinaryReader r) + : base(NetPacket.NetTypeUnsubscribeGameList) + { + if (size != 8) + throw new NetPacketException("NetPacketUnsubscribeGameList invalid size."); + } + + public override void Accept(INetPacketVisitor visitor) + { + visitor.VisitJoinGameAck(this); + } + + public override byte[] ToByteArray() + { + MemoryStream memStream = new MemoryStream(); + BinaryWriter w = new BinaryWriter(memStream); + + w.Write(IPAddress.HostToNetworkOrder((short)Type)); + w.Write(IPAddress.HostToNetworkOrder((short)8)); + w.Write(IPAddress.HostToNetworkOrder((int)0)); // reserved + + return memStream.ToArray(); + } + } +}