コード例 #1
0
        // this auto-sets up a player channel with the specified player and display channel.
        public static async Task <PlayerConnection> CreateAsync(Player player, DisplayBroadcast channel)
        {
            IDMChannel dm = await player.User.GetOrCreateDMChannelAsync();

            var result = new PlayerConnection
            {
                User            = player.User,
                Frequency       = channel.Frequency,
                InternalChannel = dm,
                InternalMessage = await dm.SendMessageAsync(channel.ToString())
            };

            return(result);
        }
コード例 #2
0
        public List <IInput> GetAvailableInputs()
        {
            DisplayBroadcast broadcast = State == GameState.Playing
                ? Server.GetBroadcast(Frequency)
                : Server.GetBroadcast(State);

            var inputs = new List <IInput>(Inputs);

            if (broadcast != null)
            {
                inputs.AddRange(broadcast.Inputs);
            }

            return(inputs);
        }
コード例 #3
0
 private GameServer(GameManager manager, IUser host, ServerProperties properties = null)
 {
     properties ??= ServerProperties.GetDefault(host.Username);
     _manager       = manager;
     HostId         = host.Id;
     Id             = KeyBuilder.Generate(8);
     Name           = properties.Name;
     GameId         = properties.GameId;
     Privacy        = properties.Privacy;
     Broadcasts     = DisplayBroadcast.GetReservedBroadcasts();
     Connections    = new List <ServerConnection>();
     Invites        = new List <ServerInvite>();
     AllowedActions = properties.AllowedActions;
     _players       = new List <Player>
     {
         new Player(this, host)
     };
     Destroyed   = false;
     LastUpdated = DateTime.UtcNow;
     LoadGameConfig();
 }