Add player chat
This commit is contained in:
parent
f230ab3345
commit
152c268fbd
27
TrueCraft.API/ChatColor.cs
Normal file
27
TrueCraft.API/ChatColor.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace TrueCraft.API
|
||||
{
|
||||
public static class ChatColor
|
||||
{
|
||||
public const string Black = "§0";
|
||||
public const string DarkBlue = "§1";
|
||||
public const string DarkGreen = "§2";
|
||||
public const string DarkCyan = "§3";
|
||||
public const string DarkRed = "§4";
|
||||
public const string Purple = "§5";
|
||||
public const string Orange = "§6";
|
||||
public const string Gray = "§7";
|
||||
public const string DarkGray = "§8";
|
||||
public const string Blue = "§9";
|
||||
public const string BrightGreen = "§a";
|
||||
public const string Cyan = "§b";
|
||||
public const string Red = "§c";
|
||||
public const string Pink = "§d";
|
||||
public const string Yellow = "§e";
|
||||
public const string White = "§f";
|
||||
}
|
||||
}
|
@ -12,7 +12,9 @@ namespace TrueCraft.API.Networking
|
||||
IWorld World { get; }
|
||||
IEntity Entity { get; }
|
||||
IWindow Inventory { get; }
|
||||
string Username { get; }
|
||||
|
||||
void QueuePacket(IPacket packet);
|
||||
void SendMessage(string message);
|
||||
}
|
||||
}
|
@ -71,6 +71,7 @@
|
||||
<Compile Include="Windows\WindowChangeEventArgs.cs" />
|
||||
<Compile Include="Logic\IBlockProvider.cs" />
|
||||
<Compile Include="Logic\IItemProvider.cs" />
|
||||
<Compile Include="ChatColor.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using TrueCraft.API;
|
||||
using TrueCraft.API.Server;
|
||||
using TrueCraft.Core.Networking.Packets;
|
||||
using TrueCraft.API.Networking;
|
||||
@ -9,9 +10,14 @@ namespace TrueCraft.Handlers
|
||||
{
|
||||
public static void RegisterHandlers(IMultiplayerServer server)
|
||||
{
|
||||
server.RegisterPacketHandler(new KeepAlivePacket().ID, HandleKeepAlive);
|
||||
server.RegisterPacketHandler(new ChatMessagePacket().ID, HandleChatMessage);
|
||||
|
||||
server.RegisterPacketHandler(new HandshakePacket().ID, LoginHandlers.HandleHandshakePacket);
|
||||
server.RegisterPacketHandler(new LoginRequestPacket().ID, LoginHandlers.HandleLoginRequestPacket);
|
||||
|
||||
server.RegisterPacketHandler(new PlayerPositionPacket().ID, EntityHandlers.HandlePlayerPositionPacket);
|
||||
|
||||
server.RegisterPacketHandler(new PlayerDiggingPacket().ID, InteractionHandlers.HandlePlayerDiggingPacket);
|
||||
server.RegisterPacketHandler(new PlayerBlockPlacementPacket().ID, InteractionHandlers.HandlePlayerBlockPlacementPacket);
|
||||
}
|
||||
@ -20,5 +26,16 @@ namespace TrueCraft.Handlers
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
internal static void HandleChatMessage(IPacket _packet, IRemoteClient _client, IMultiplayerServer server)
|
||||
{
|
||||
// TODO: Abstract this to support things like commands
|
||||
// TODO: Sanitize messages
|
||||
var packet = (ChatMessagePacket)_packet;
|
||||
foreach (var client in server.Clients)
|
||||
{
|
||||
client.SendMessage(ChatColor.Yellow + string.Format("<{0}> {1}", _client.Username, packet.Message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -64,6 +64,11 @@ namespace TrueCraft
|
||||
PacketQueue.Enqueue(packet);
|
||||
}
|
||||
|
||||
public void SendMessage(string message)
|
||||
{
|
||||
QueuePacket(new ChatMessagePacket(message));
|
||||
}
|
||||
|
||||
internal void ExpandChunkRadius(IMultiplayerServer server)
|
||||
{
|
||||
if (ChunkRadius < 5)
|
||||
|
Reference in New Issue
Block a user