38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
using System;
|
|
using TrueCraft.API.Networking;
|
|
using System.Net;
|
|
using System.Collections.Generic;
|
|
using TrueCraft.API.World;
|
|
using TrueCraft.API.Logging;
|
|
using TrueCraft.API.Logic;
|
|
|
|
namespace TrueCraft.API.Server
|
|
{
|
|
/// <summary>
|
|
/// Called when the given packet comes in from a remote client. Return false to cease communication
|
|
/// with that client.
|
|
/// </summary>
|
|
public delegate void PacketHandler(IPacket packet, IRemoteClient client, IMultiplayerServer server);
|
|
|
|
public interface IMultiplayerServer
|
|
{
|
|
event EventHandler<ChatMessageEventArgs> ChatMessageReceived;
|
|
event EventHandler<PlayerJoinedEventArgs> PlayerJoined;
|
|
|
|
IPacketReader PacketReader { get; }
|
|
IList<IRemoteClient> Clients { get; }
|
|
IList<IWorld> Worlds { get; }
|
|
IEventScheduler Scheduler { get; }
|
|
IBlockRepository BlockRepository { get; }
|
|
IItemRepository ItemRepository { get; }
|
|
bool BlockUpdatesEnabled { get; set; }
|
|
|
|
void Start(IPEndPoint endPoint);
|
|
void RegisterPacketHandler(byte packetId, PacketHandler handler);
|
|
void AddWorld(IWorld world);
|
|
void AddLogProvider(ILogProvider provider);
|
|
void Log(LogCategory category, string text, params object[] parameters);
|
|
IEntityManager GetEntityManagerForWorld(IWorld world);
|
|
void SendMessage(string message, params object[] parameters);
|
|
}
|
|
} |