CMDs
ChatCMDHelp.cs
using Mono.Cecil;
using Mono.Cecil.Cil;
using MonoMod.Utils;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Celeste.Mod.CelesteNet.Server.Chat {
public clast ChatCMDHelp : ChatCMD {
public override string Args => "[page] | [command]";
public override string Info => "Get help on how to use commands.";
public override int HelpOrder => int.MinValue;
public override void Run(ChatCMDEnv env, List args) {
if (args.Count == 1) {
if (args[0].Type == ChatCMDArgType.Int) {
env.Send(GetCommandPage(env, args[0].Int - 1));
return;
}
env.Send(GetCommandSnippet(env, args[0].String));
return;
}
env.Send(GetCommandPage(env, 0));
}
public string GetCommandPage(ChatCMDEnv env, int page = 0) {
const int pageSize = 8;
string prefix = Chat.Settings.CommandPrefix;
StringBuilder builder = new();
int pages = (int) Math.Ceiling(Chat.Commands.All.Count / (float) pageSize);
if (page < 0 || pages