AutoCompile 自动编译插件
- 出处：TShock官方群816771079
- 作者: 羽学
- 这是一个Tshock服务器插件，主要用于：
将CSharp代码放入【自动编译】=>【源码】文件夹内使用/cs by指令将源码编译成可允许的Dll插件,
可将依赖项放入到【程序集】文件夹自动引用。

权限名：compile.use
指令：
/cs ——菜单指令
/cs 编译(by) ——将【源码】文件夹的.cs编译成DLL插件到【编译输出】文件夹
/cs 反编译(fby) ——将【编译输出】与【ServerPlugns】文件夹的DLL反编译成.cs到【源码】文件夹
/cs 配置(pz) ——显示当前配置情况
/cs 路径(lj) ——显示插件文件路径
/cs 清理(ql) ——清理源码文件夹（考虑面板服用户删除效率慢）
/reload ——重载配置文件（权限tshock.cfg.reload）

更新日志：
v1.0.9
适配TShock 6.1.0
优化了拆分与单文件模式的清晰度,过滤掉不相关的源码
加入配置项【反编译排除的命名空间前缀】

v1.0.8
反编译指令不再需要手动填写文件名，而是使用列出文件索引来选择对象
反编译支持导出插件内的内嵌资源,
加入了配置项【反编译排除列表】避免筛选出太多无用的dll
/cs fby 列出所有插件(自动扫描ServerPlugins与《编译输出》文件夹)
/cs fby 1 ——对第1个插件进行反编译,生成单文件
/cs fby 1 -s ——按类型分割为多个.cs源码文件(推荐)
/cs fby 1 命名空间.类名 ——仅反编译指定命名空间下的指定类

v1.0.7
支持Net9,适配TShock Beta版1770f2d
加入了/cs fby 反编译指令,
从ServerPlugins自动扫描.dll文件使用指令输出.cs源码
可从程序集添加对反编译的引用
为手游用户提供源码查看与编写便利
输出路径为：《源码》文件夹
读取路径为：《编译输出》文件夹与《ServerPlugins》文件夹
支持-s参数：按类型分割.cs文件

v1.0.6
给C#脚本加入了脚本服务接口用于解决：
1.处理多插件引用其编译功能时存在的命名空间污染问题
2.使每个插件对脚本编译独立化,让对接的插件编写更轻松
优化了信息输出排版,支持进度形的百分比完成度显示
注意引用其脚本插件需要在调用插件里传参以下几个关键内容：
- 全局变量类 （辅助编写脚本用的，可以内置插件指定类和方法）
- 配置文件定义1个bool，决定是否在初始化执行器时自动开服编译
- 配置文件定义1个List<string>，专门传参这个插件的专用using避免命名空间污染
- 定义1个Assembly，内容为typeof(MonsterSpeed).Assembly 
MonsterSpeed修改为自己的命名空间,用于作为注册执行器的主键
- 定义1个string，内容为Path.Combine(TShock.SavePath, "怪物加速", "C#脚本");
把 "怪物加速"改为你自己的想指定的文件夹,用于独立指定编译的脚本目录
详细参考：https://github.com/1242509682/MonsterSpeed/blob/master/CSExecutor.cs

v1.0.5
优化批量编译:不再重复编译未修改过的C#脚本

v1.0.4
加入了动态编译C#脚本功能与执行器
此功能仅用于与其他插件对接时使用
优化了编译DLL的内存占用与释放
（之前每次编译DLL都会有10-20m的内存增长）

v1.0.3
移除了【智能修复】避免误伤某些命名空间导致编译失败
恢复了【移除指定using语句】配置项(比较稳妥,自己决定是否移除)

v1.0.2
优化了每次编译后可能的内存泄露
将/cs ql 改为清理“源码”文件夹
加入了编译前后的内存对比显示
移除了分组编译逻辑，避免误判报错，只允许放入同命名空间的单插件源码进行编译
移除了【移除指定Using】配置项
重构编译构建逻辑，加入了智能修复(检测缺失命名空间自动移除,尝试重新编译)

v1.0.1
加入了少量的报错汉化与报错日志文件输出
加入了修复中文编码（针对于某些喜欢在switch类型添加中文指令插件)
支持指定引用系统自带的“运行时”程序集
修复了报错后不会强制GC回收内存的BUG
内嵌了更多程序集，经过上百款主流插件源码测试，除了构架太老的源码基本上都能编译通过（说的是本身源码就没错误的那些）
注意：本插件可以编译CS8-14的代码，但CS11以上无法在TShock5运行请升级TShock6
特别注意：我知道你懒，但也别把bin文件夹和obj文件夹丢进去省得报错了还怪插件不行！

v1.0.0
利用Roslyn编译器实现功能，为解决没有电脑的手机服主提供便利
暂时不支持内嵌文件的插件源码(没做相关适配,但插件生成出来是可用的,就是没内嵌文件)
需要统一所有CS源码命名空间
自动补充引用TShock和OTAPI的DLL
额外引用程序集放入到【程序集】文件夹
编译后的DLL自动放入到【编译输出】文件夹
主要指令只有一个，其他的没什么用：/cs by