This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
TrueCraft/TrueCraft.API/Server/IMultiplayerServer.cs
2015-02-01 18:53:10 -07:00

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);
}
}