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; }
|
IWorld World { get; }
|
||||||
IEntity Entity { get; }
|
IEntity Entity { get; }
|
||||||
IWindow Inventory { get; }
|
IWindow Inventory { get; }
|
||||||
|
string Username { get; }
|
||||||
|
|
||||||
void QueuePacket(IPacket packet);
|
void QueuePacket(IPacket packet);
|
||||||
|
void SendMessage(string message);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -71,6 +71,7 @@
|
|||||||
<Compile Include="Windows\WindowChangeEventArgs.cs" />
|
<Compile Include="Windows\WindowChangeEventArgs.cs" />
|
||||||
<Compile Include="Logic\IBlockProvider.cs" />
|
<Compile Include="Logic\IBlockProvider.cs" />
|
||||||
<Compile Include="Logic\IItemProvider.cs" />
|
<Compile Include="Logic\IItemProvider.cs" />
|
||||||
|
<Compile Include="ChatColor.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using TrueCraft.API;
|
||||||
using TrueCraft.API.Server;
|
using TrueCraft.API.Server;
|
||||||
using TrueCraft.Core.Networking.Packets;
|
using TrueCraft.Core.Networking.Packets;
|
||||||
using TrueCraft.API.Networking;
|
using TrueCraft.API.Networking;
|
||||||
@ -9,9 +10,14 @@ namespace TrueCraft.Handlers
|
|||||||
{
|
{
|
||||||
public static void RegisterHandlers(IMultiplayerServer server)
|
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 HandshakePacket().ID, LoginHandlers.HandleHandshakePacket);
|
||||||
server.RegisterPacketHandler(new LoginRequestPacket().ID, LoginHandlers.HandleLoginRequestPacket);
|
server.RegisterPacketHandler(new LoginRequestPacket().ID, LoginHandlers.HandleLoginRequestPacket);
|
||||||
|
|
||||||
server.RegisterPacketHandler(new PlayerPositionPacket().ID, EntityHandlers.HandlePlayerPositionPacket);
|
server.RegisterPacketHandler(new PlayerPositionPacket().ID, EntityHandlers.HandlePlayerPositionPacket);
|
||||||
|
|
||||||
server.RegisterPacketHandler(new PlayerDiggingPacket().ID, InteractionHandlers.HandlePlayerDiggingPacket);
|
server.RegisterPacketHandler(new PlayerDiggingPacket().ID, InteractionHandlers.HandlePlayerDiggingPacket);
|
||||||
server.RegisterPacketHandler(new PlayerBlockPlacementPacket().ID, InteractionHandlers.HandlePlayerBlockPlacementPacket);
|
server.RegisterPacketHandler(new PlayerBlockPlacementPacket().ID, InteractionHandlers.HandlePlayerBlockPlacementPacket);
|
||||||
}
|
}
|
||||||
@ -20,5 +26,16 @@ namespace TrueCraft.Handlers
|
|||||||
{
|
{
|
||||||
// TODO
|
// 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);
|
PacketQueue.Enqueue(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendMessage(string message)
|
||||||
|
{
|
||||||
|
QueuePacket(new ChatMessagePacket(message));
|
||||||
|
}
|
||||||
|
|
||||||
internal void ExpandChunkRadius(IMultiplayerServer server)
|
internal void ExpandChunkRadius(IMultiplayerServer server)
|
||||||
{
|
{
|
||||||
if (ChunkRadius < 5)
|
if (ChunkRadius < 5)
|
||||||
|
Reference in New Issue
Block a user