the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 119 lines 3.0 kB view raw
1#include "stdafx.h" 2#include <iostream> 3#include "PacketListener.h" 4#include "PreloginPacket.h" 5#include "InputOutputStream.h" 6 7 8 9PreLoginPacket::PreLoginPacket() 10{ 11 loginKey = L""; 12 m_playerXuids = NULL; 13 m_dwPlayerCount = 0; 14 m_friendsOnlyBits = 0; 15 m_ugcPlayersVersion = 0; 16 ZeroMemory(m_szUniqueSaveName,m_iSaveNameLen); 17 m_serverSettings = 0; 18 m_hostIndex = 0; 19 m_texturePackId = 0; 20 m_netcodeVersion = 0; 21} 22 23PreLoginPacket::PreLoginPacket(wstring userName) 24{ 25 this->loginKey = userName; 26 m_playerXuids = NULL; 27 m_dwPlayerCount = 0; 28 m_friendsOnlyBits = 0; 29 m_ugcPlayersVersion = 0; 30 ZeroMemory(m_szUniqueSaveName,m_iSaveNameLen); 31 m_serverSettings = 0; 32 m_hostIndex = 0; 33 m_texturePackId = 0; 34 m_netcodeVersion = 0; 35} 36 37PreLoginPacket::PreLoginPacket(wstring userName, PlayerUID *playerXuids, DWORD playerCount, BYTE friendsOnlyBits, DWORD ugcPlayersVersion,char *pszUniqueSaveName, DWORD serverSettings, BYTE hostIndex, DWORD texturePackId) 38{ 39 this->loginKey = userName; 40 m_playerXuids = playerXuids; 41 m_dwPlayerCount = playerCount; 42 m_friendsOnlyBits = friendsOnlyBits; 43 m_ugcPlayersVersion = ugcPlayersVersion; 44 memcpy(m_szUniqueSaveName,pszUniqueSaveName,m_iSaveNameLen); 45 m_serverSettings = serverSettings; 46 m_hostIndex = hostIndex; 47 m_texturePackId = texturePackId; 48 m_netcodeVersion = 0; 49} 50 51PreLoginPacket::~PreLoginPacket() 52{ 53 if( m_playerXuids != NULL ) delete [] m_playerXuids; 54} 55 56void PreLoginPacket::read(DataInputStream *dis) //throws IOException 57{ 58 m_netcodeVersion = dis->readShort(); 59 60 loginKey = readUtf(dis, 32); 61 62 m_friendsOnlyBits = dis->readByte(); 63 m_ugcPlayersVersion = dis->readInt(); 64 m_dwPlayerCount = dis->readByte(); 65 if( m_dwPlayerCount > 0 ) 66 { 67 m_playerXuids = new PlayerUID[m_dwPlayerCount]; 68 for(DWORD i = 0; i < m_dwPlayerCount; ++i) 69 { 70 m_playerXuids[i] = dis->readPlayerUID(); 71 } 72 } 73 for(DWORD i = 0; i < m_iSaveNameLen; ++i) 74 { 75 m_szUniqueSaveName[i]=dis->readByte(); 76 } 77 m_serverSettings = dis->readInt(); 78 m_hostIndex = dis->readByte(); 79 80 INT texturePackId = dis->readInt(); 81 m_texturePackId = *(DWORD *)&texturePackId; 82 83 // Set the name of the map so we can check it for players banned lists 84 app.SetUniqueMapName((char *)m_szUniqueSaveName); 85} 86 87void PreLoginPacket::write(DataOutputStream *dos) //throws IOException 88{ 89 dos->writeShort(MINECRAFT_NET_VERSION); 90 91 writeUtf(loginKey, dos); 92 93 dos->writeByte(m_friendsOnlyBits); 94 dos->writeInt(m_ugcPlayersVersion); 95 dos->writeByte((byte)m_dwPlayerCount); 96 for(DWORD i = 0; i < m_dwPlayerCount; ++i) 97 { 98 dos->writePlayerUID( m_playerXuids[i] ); 99 } 100 101 app.DebugPrintf("*** PreLoginPacket::write - %s\n",m_szUniqueSaveName); 102 for(DWORD i = 0; i < m_iSaveNameLen; ++i) 103 { 104 dos->writeByte(m_szUniqueSaveName[i]); 105 } 106 dos->writeInt(m_serverSettings); 107 dos->writeByte(m_hostIndex); 108 dos->writeInt(m_texturePackId); 109} 110 111void PreLoginPacket::handle(PacketListener *listener) 112{ 113 listener->handlePreLogin(shared_from_this()); 114} 115 116int PreLoginPacket::getEstimatedSize() 117{ 118 return 4 + 4 + (int)loginKey.length() + 4 +14 + 4 + 1 + 4; 119}