Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Discord;
- using Discord.Commands;
- using Discord.WebSocket;
- using System.Net;
- namespace RMSoftware.ModularBot
- {
- public class CommandItem
- {
- public string Cmdname { get; private set; }
- public string cmdPerms { get; private set; }
- public string cmdSummary { get; private set; }
- public string cmdUsage { get; private set; }
- public string coreNote { get; private set; }
- public int index { get; private set; }
- bool is_core = false;
- string CoreID()
- {
- if(is_core)
- {
- return "CORE";
- }
- else
- {
- return "CSTM";
- }
- }
- public string generateTab()
- {
- return
- $@"<!-- START-TAB --><div class='panel panel-default'>
- <div class='panel-heading ' role='tab' id='hd{CoreID()}{index}'>
- <table>
- <tr><td><img src = 'http://rmsoftware.org/images/Icons/appIcons/cbot.png' style='padding-right:5px;'/></td><td>
- <h3 class='panel-title' data-toggle='collapse' data-parent='#accordion{CoreID()}'><a class='collapsed' data-toggle='collapse' data-parent='#accordion{CoreID()}' href='#dlid{CoreID()}{index}' aria-expanded='false' aria-controls='dlid{CoreID()}{index}'>{Cmdname}</a></h3>{coreNote}
- </td>
- </tr>
- <tr><td></td><td></td></tr></table>
- </div>
- <div id = 'dlid{CoreID()}{index}' class='panel-collapse collapse' role='tabpanel' aria-labelledby='hd{CoreID()}{index}'>
- <div class='panel-body'>
- <p><b>Summary: </b>{cmdSummary}</p>
- <br/>
- <p><b>Usage: </b></p>
- <ul>
- <li>{cmdUsage}</li>
- </ul>
- <p><b>Permissions: </b></p>
- <ul>
- <li>{cmdPerms}</li>
- </ul>
- <br/>
- </div>
- </div>
- </div>
- <!-- END TAB -->";
- }
- public CommandItem(string CmdName, string CmdPerms, string CmdSummary, string CmdUsage, bool IsCore,int Index)
- {
- Cmdname = WebUtility.HtmlEncode(CmdName);
- cmdPerms = WebUtility.HtmlEncode(CmdPerms);
- cmdSummary = WebUtility.HtmlEncode(CmdSummary);
- cmdUsage = WebUtility.HtmlEncode(CmdUsage);
- is_core = IsCore;
- if(IsCore)
- {
- coreNote = "<small class='SourceNote'>CORE</small>";
- }
- index = Index;
- }
- }
- public class CommandList
- {
- List<CommandItem> commands { get; set; }
- int index = 0;
- public string botname { get; private set; }
- public string GenerateCoreCommandList()
- {
- string outresult = "";
- foreach (var item in commands)
- {
- if (string.IsNullOrWhiteSpace(item.coreNote))
- {
- continue;
- }
- outresult += item.generateTab();
- }
- return outresult;
- }
- public string GenerateOtherCommandList()
- {
- string outresult = "";
- foreach (var item in commands)
- {
- if (!string.IsNullOrWhiteSpace(item.coreNote))
- {
- continue;
- }
- outresult += item.generateTab();
- }
- return outresult;
- }
- public CommandList(string clientUsername)
- {
- botname = clientUsername;
- commands = new List<CommandItem>();
- }
- public void AddCommand(string cmdName,bool restricted, bool isCore,string summary=null,string usage=null)
- {
- string permission = restricted ? "Requires special permissions" : "Unrestricted";
- if(string.IsNullOrWhiteSpace(summary))
- {
- summary = "No summary was provided for this command.";
- }
- if (string.IsNullOrWhiteSpace(usage))
- {
- usage = "No usage information was provided for this command.";
- }
- commands.Add(new CommandItem(cmdName, permission, summary, usage, isCore, index));
- index++;
- }
- public string GetFullHTML()
- {
- return $@"
- <!DOCTYPE html>
- <html class='no-js'>
- <head>
- <meta charset='utf-8'>
- <title>{botname}'s Command List</title>
- <meta name='description' content=''>
- <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1'>
- <!-- Fonts -->
- <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,700' rel='stylesheet' type='text/css'>
- <link href='http://fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'>
- <!-- Bootsrap -->
- <link rel='stylesheet' href='http://rmsoftware.org/assets/css/bootstrap.min.css'>
- <!-- Font awesome -->
- <link rel='stylesheet' href='http://rmsoftware.org/assets/css/font-awesome.min.css'>
- <!-- PrettyPhoto -->
- <link rel='stylesheet' href='http://rmsoftware.org/assets/css/prettyPhoto.css'>
- <!-- Template main Css -->
- <link rel='stylesheet' href='http://rmsoftware.org/assets/css/style.css'>
- <!-- Modernizr -->
- <script src='http://rmsoftware.org/assets/js/modernizr-2.6.2.min.js'></script>
- </head>
- <body>
- <!-- NAVBAR
- ================================================== -->
- <header class='main-header'>
- <nav class='navbar navbar-static-top'>
- <div class='navbar-main'>
- <div class='container'>
- <div class='navbar-header'>
- <button type='button' class='navbar-toggle collapsed' data-toggle='collapse' data-target='#navbar' aria-expanded='false' aria-controls='navbar'>
- <span class='sr-only'>Toggle navigation</span>
- <span class='icon-bar'></span>
- <span class='icon-bar'></span>
- <span class='icon-bar'></span>
- </button>
- <a class='navbar-brand' href='index.php'><img src='http://rmsoftware.org/assets/images/sadaka-logo.png' alt=''></a>
- </div>
- <div id='navbar' class='navbar-collapse collapse pull-right'>
- <ul class='nav navbar-nav'>
- <li><a href='http://rmsoftware.org'>RMsoftware.org</a></li>
- </ul>
- </div> <!-- /#navbar -->
- </div> <!-- /.container -->
- </div> <!-- /.navbar-main -->
- </nav>
- </header> <!-- /. main-header -->
- <div class='page-heading text-center'>
- <div class='container zoomIn animated'>
- <h1 class='page-title'>Command list<span class='title-under'></span></h1>
- <p class='page-description'>
- Powered by RMSoftware.ModularBot
- </p>
- </div>
- </div>
- <div class='main-container'>
- <div class='container'>
- <div class='row '>
- <div class='col-md-12 fadeIn'>
- <div role='tabpanel'>
- <!-- Nav tabs -->
- <ul class='nav nav-tabs' role='tablist'>
- <li role='presentation' class='active'><a href='#cmdlist_Core' aria-controls='cmdlist_Core' role='tab' data-toggle='tab'>Core Commands</a></li>
- <li role='presentation' ><a href='#cmdlist_Other' aria-controls='cmdlist_Other' role='tab' data-toggle='tab'>Module & Custom Commands</a></li>
- </ul>
- <!-- Tab panes -->
- <div class='tab-content'>
- <div role='tabpanel' class='tab-pane active' id='cmdlist_Core'>
- <div class='panel-group' id='accordionCORE' role='tablist' aria-multiselectable='true'>{GenerateCoreCommandList()}</div>
- <p></p>
- </div>
- <div role='tabpanel' class='tab-pane' id='cmdlist_Other'>
- <div class='panel-group' id='accordionCSTM' role='tablist' aria-multiselectable='true'>{GenerateOtherCommandList()}</div>
- <p></p>
- </div>
- </div>
- <p></p>
- </div>
- </div>
- </div>
- </div>
- </div> <!-- /.main-container -->
- <footer class='main-footer'>
- <div class='footer-bottom'>
- <div class='container text-right'>
- Copyright © 2011-2017 RMSoftware Development. Responsive framework by <a href='http://ouarmedia.com'>SADAKA @ Ouarmedia</a>
- </div>
- </div>
- </footer>
- <!-- jQuery -->
- <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
- <!-- Bootsrap javascript file -->
- <script src='http://rmsoftware.org/assets/js/bootstrap.min.js'></script>
- <!-- PrettyPhoto javascript file -->
- <script src='http://rmsoftware.org/assets/js/jquery.prettyPhoto.js'></script>
- <!-- Template main javascript -->
- <script src='http://rmsoftware.org/assets/js/main.js'></script>
- </body>
- </html>
- ";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment