namespace NotPogo.Core.Rooms { public interface IGameRoom { Task OnPlayerJoinedAsync(Room room, Player player); Task OnPlayerLeftAsync(Room room, Player player); Task OnMessageAsync(Room room, Player player, string op, Dictionary msg); Task OnGameJoinAsync(Room room, Player player); } public sealed class ChatOnlyRoom : IGameRoom { public Task OnMessageAsync(Room room, Player player, string op, Dictionary msg) => Task.FromResult(false); public Task OnPlayerJoinedAsync(Room room, Player player) => Task.CompletedTask; public Task OnPlayerLeftAsync(Room room, Player player) => Task.CompletedTask; public Task OnGameJoinAsync(Room room, Player player) => Task.CompletedTask; } }