Compare commits
No commits in common. "7ac25f8cc07556c62437558617eacf90804abef6" and "26fb6e43d2bda6f993685c42b3eea210fa7c0e99" have entirely different histories.
7ac25f8cc0
...
26fb6e43d2
1 changed files with 6 additions and 69 deletions
75
src/main.cpp
75
src/main.cpp
|
|
@ -8,64 +8,17 @@ using namespace std;
|
|||
|
||||
Logger log;
|
||||
|
||||
auto writeMCString = [](char* buf, const string& str){
|
||||
memset(buf, ' ', 64);
|
||||
memcpy(buf, str.c_str(), min(str.size(), (size_t)64));
|
||||
};
|
||||
|
||||
class Player {
|
||||
public:
|
||||
string username;
|
||||
string verKey;
|
||||
bool isOP;
|
||||
|
||||
Player(string uname, string verkey, bool op){
|
||||
Player(string uname, string verkey){
|
||||
username = uname;
|
||||
verKey = verkey;
|
||||
isOP = op;
|
||||
}
|
||||
};
|
||||
|
||||
class Packet {
|
||||
public:
|
||||
void recvPlayerId(SOCKET socket){
|
||||
char buffer[131] = {};
|
||||
int bytesRecv = recv(socket, buffer, sizeof(buffer), 0);
|
||||
|
||||
if(bytesRecv <= 0){
|
||||
log.err("No bytes received");
|
||||
closesocket(socket);
|
||||
}
|
||||
|
||||
uint8_t packID = buffer[0];
|
||||
uint8_t protVer = buffer[1];
|
||||
string username; username.assign(buffer + 2, 64);
|
||||
username.erase(username.find_first_of("\0 \t\r\n", 0, 6));
|
||||
string verKey; verKey.assign(buffer + 66, 64);
|
||||
uint8_t unused = buffer[130];
|
||||
|
||||
log.info(username + " connected");
|
||||
}
|
||||
|
||||
void sendServerId(SOCKET socket, string name, string motd, char utype){
|
||||
char buffer[131] = {};
|
||||
|
||||
buffer[0] = 0x00;
|
||||
buffer[1] = 0x07;
|
||||
writeMCString(buffer + 2, name);
|
||||
writeMCString(buffer + 66, motd);
|
||||
buffer[130] = utype;
|
||||
|
||||
int bytesSent = send(socket, buffer, sizeof(buffer), 0);
|
||||
if(bytesSent != sizeof(buffer)){
|
||||
log.err("Failed to send buffer");
|
||||
closesocket(socket);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Packet pack;
|
||||
|
||||
int main() {
|
||||
log.raw("mcc v0.0.0");
|
||||
Socket socket;
|
||||
|
|
@ -79,16 +32,14 @@ int main() {
|
|||
if(clientSocket == INVALID_SOCKET) continue;
|
||||
|
||||
// Receive player identification
|
||||
/*
|
||||
char buffer[131] = {};
|
||||
int bytesRecv = recv(clientSocket, buffer, sizeof(buffer), 0);
|
||||
|
||||
if(bytesRecv <= 0){
|
||||
log.err("No bytes received");
|
||||
closesocket(clientSocket);
|
||||
continue;
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t packID = buffer[0];
|
||||
uint8_t protVer = buffer[1];
|
||||
string username; username.assign(buffer + 2, 64);
|
||||
|
|
@ -96,27 +47,13 @@ int main() {
|
|||
string verKey; verKey.assign(buffer + 66, 64);
|
||||
uint8_t unused = buffer[130];
|
||||
|
||||
Player player(username, verKey, false);
|
||||
|
||||
Player player(username, verKey);
|
||||
log.info(username + " connected");
|
||||
*/
|
||||
|
||||
// send server identification (using the same buffer)
|
||||
Player player(username, verKey, false);
|
||||
|
||||
string name, motd;
|
||||
char utype;
|
||||
|
||||
name = "MCC Testing";
|
||||
motd = "Welcome, " + player.username + "!";
|
||||
if(player.isOP == true) utype = 0x64;
|
||||
else utype = 0x00;
|
||||
|
||||
pack.sendServerId(clientSocket, name, motd, utype);
|
||||
|
||||
// Level initialization (just to debug server id packet)
|
||||
char levelinitbuff = 0x02;
|
||||
send(clientSocket, &levelinitbuff, sizeof(levelinitbuff), 0);
|
||||
for(int i=0; i < sizeof(buffer); i++){
|
||||
buffer[i] = {};
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue