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 { /// /// Called when the given packet comes in from a remote client. Return false to cease communication /// with that client. /// public delegate void PacketHandler(IPacket packet, IRemoteClient client, IMultiplayerServer server); public interface IMultiplayerServer { event EventHandler ChatMessageReceived; event EventHandler PlayerJoined; IPacketReader PacketReader { get; } IList Clients { get; } IList 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); } }