fCraft.ConfigGUI.MainForm.bDeleteRank_Click C# (CSharp) Метод

bDeleteRank_Click() приватный Метод

private bDeleteRank_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Результат void
        private void bDeleteRank_Click( object sender, EventArgs e )
        {
            if ( vRanks.SelectedItem != null ) {
                selectedRank = null;
                int index = vRanks.SelectedIndex;
                Rank deletedRank = RankManager.FindRank( index );
                if ( deletedRank == null )
                    return;

                string messages = "";

                // Ask for substitute rank
                DeleteRankPopup popup = new DeleteRankPopup( deletedRank );
                if ( popup.ShowDialog() != DialogResult.OK )
                    return;

                Rank replacementRank = popup.SubstituteRank;

                // Update default rank
                if ( RankManager.DefaultRank == deletedRank ) {
                    RankManager.DefaultRank = replacementRank;
                    messages += "DefaultRank has been changed to \"" + replacementRank.Name + "\"" + Environment.NewLine;
                }

                // Update defaultbuild rank
                if ( RankManager.DefaultBuildRank == deletedRank ) {
                    RankManager.DefaultBuildRank = replacementRank;
                    messages += "DefaultBuildRank has been changed to \"" + replacementRank.Name + "\"" + Environment.NewLine;
                }

                // Update patrolled rank
                if ( RankManager.PatrolledRank == deletedRank ) {
                    RankManager.PatrolledRank = replacementRank;
                    messages += "PatrolledRank has been changed to \"" + replacementRank.Name + "\"" + Environment.NewLine;
                }

                // Update patrolled rank
                if ( RankManager.BlockDBAutoEnableRank == deletedRank ) {
                    RankManager.BlockDBAutoEnableRank = replacementRank;
                    messages += "BlockDBAutoEnableRank has been changed to \"" + replacementRank.Name + "\"" + Environment.NewLine;
                }

                // Delete rank
                if ( RankManager.DeleteRank( deletedRank, replacementRank ) ) {
                    messages += "Some of the rank limits for kick, ban, promote, and/or demote have been reset." + Environment.NewLine;
                }
                vRanks.Items.RemoveAt( index );

                // Update world permissions
                string worldUpdates = "";
                foreach ( WorldListEntry world in Worlds ) {
                    if ( world.AccessPermission == ToComboBoxOption( deletedRank ) ) {
                        world.AccessPermission = ToComboBoxOption( replacementRank );
                        worldUpdates += " - " + world.Name + ": access permission changed to " + replacementRank.Name + Environment.NewLine;
                    }
                    if ( world.BuildPermission == ToComboBoxOption( deletedRank ) ) {
                        world.BuildPermission = ToComboBoxOption( replacementRank );
                        worldUpdates += " - " + world.Name + ": build permission changed to " + replacementRank.Name + Environment.NewLine;
                    }
                }

                rankNameList.RemoveAt( index + 1 );

                if ( worldUpdates.Length > 0 ) {
                    messages += "The following worlds were affected:" + Environment.NewLine + worldUpdates;
                }

                if ( messages.Length > 0 ) {
                    MessageBox.Show( messages, "Warning" );
                }

                RebuildRankList();

                if ( index < vRanks.Items.Count ) {
                    vRanks.SelectedIndex = index;
                }
            }
        }
MainForm