コード例 #1
0
ファイル: ColossoPvE.cs プロジェクト: dom426/IodemBot
        private async Task <ITextChannel> PrepareBattleChannel(string Name, RoomVisibility visibility = RoomVisibility.All)
        {
            var channel = await Context.Guild.GetOrCreateTextChannelAsync(Name);

            await channel.ModifyAsync(c =>
            {
                c.CategoryId = ((ITextChannel)Context.Channel).CategoryId;
                c.Position   = ((ITextChannel)Context.Channel).Position + battles.Count + 1;
            });

            await channel.SyncPermissionsAsync();

            if (visibility == RoomVisibility.TeamB)
            {
                await channel.AddPermissionOverwriteAsync(PvPEnvironment.TeamBRole, new OverwritePermissions(viewChannel : PermValue.Allow));

                await channel.AddPermissionOverwriteAsync(Context.Guild.EveryoneRole, new OverwritePermissions(viewChannel : PermValue.Deny));
            }

            if (visibility == RoomVisibility.TeamA)
            {
                await channel.AddPermissionOverwriteAsync(PvPEnvironment.TeamBRole, new OverwritePermissions(viewChannel : PermValue.Deny));
            }

            if (visibility == RoomVisibility.Private)
            {
                await channel.AddPermissionOverwriteAsync(PvPEnvironment.TeamBRole, new OverwritePermissions(viewChannel : PermValue.Deny));

                await channel.AddPermissionOverwriteAsync(Context.Guild.EveryoneRole, new OverwritePermissions(viewChannel : PermValue.Deny));
            }
            var messages = await channel.GetMessagesAsync(100).FlattenAsync();

            await channel.DeleteMessagesAsync(messages);

            return(channel);
        }
コード例 #2
0
 public RoomVisibilityContainer(RoomVisibility visibility)
     : this() =>