/// <summary> /// 初始化文件 /// </summary> private static void initPlugin() { if (!Directory.Exists(BDSName)) { Directory.CreateDirectory(BDSName); } if (!Directory.Exists(FolderName)) { Directory.CreateDirectory(FolderName); } if (!Directory.Exists(MenuName)) { Directory.CreateDirectory(MenuName); } if (!File.Exists(configFile)) { initConfig(); } if (!File.Exists(defaultFile)) { initDefault(); } try { config = JObject.Parse(File.ReadAllText(configFile)); mcapi.setCommandDescribe("menu", "打开主菜单"); foreach (JObject menu in config["menu"]) { mcapi.setCommandDescribeEx((string)menu["command"], (string)menu["description"], (bool)config["admin"] ? MCCSAPI.CommandPermissionLevel.Admin : MCCSAPI.CommandPermissionLevel.Any, (byte)MCCSAPI.CommandCheatFlag.NotCheat, (byte)MCCSAPI.CommandVisibilityFlag.Visible); } } catch { Console.WriteLine("Menu >> 配置文件 config.json 读取失败!"); Console.WriteLine("Menu >> 为了服务器的安全,已卸载本插件的所有功能,请重启服务器确保插件正常运行!"); mcapi.removeAfterActListener(EventKey.onUseItem, UseItem); mcapi.removeAfterActListener(EventKey.onLoadName, PlayerJoin); mcapi.removeAfterActListener(EventKey.onPlayerLeft, PlayerLeft); mcapi.removeAfterActListener(EventKey.onFormSelect, FormSelect); mcapi.removeBeforeActListener(EventKey.onServerCmd, ServerCmd); mcapi.removeBeforeActListener(EventKey.onInputCommand, InputCommand); return; } try { Mdefault = JObject.Parse(File.ReadAllText(defaultFile)); } catch { Console.WriteLine("Menu >> 菜单文件 default.json 读取失败!"); } }
/// <summary> /// 开始超时监听 /// </summary> public void startTimeout() { Thread t = new Thread(() => { Thread.Sleep(timeout); if (!canceled) { mapi.releaseForm(id); mapi.removeBeforeActListener(EventKey.onFormSelect, fmcb); if (ontimeout != null) { ontimeout(); } } }); t.Start(); }
//主入口 public static void init(MCCSAPI api) { mapi = api; api.setCommandDescribeEx("tr", "跨服面板", MCCSAPI.CommandPermissionLevel.GameMasters, (byte)MCCSAPI.CommandCheatFlag.NotCheat, 0); api.addBeforeActListener(EventKey.onInputCommand, x => { var e = BaseEvent.getFrom(x) as InputCommandEvent; if (e.cmd.Trim() == "/tr") { string s = File.ReadAllText(@"plugins\Transfer\transfer.json"); var uuid = getUUUD(e.playername); var formid = api.sendCustomForm(uuid, s); mapi.addBeforeActListener(EventKey.onFormSelect, x1 => { var je = BaseEvent.getFrom(x1) as FormSelectEvent; if (je.formid == formid) { mapi.removeBeforeActListener(EventKey.onFormSelect, c => { return(true); }); if (je.selected != "[\"\",\"\"]" && je.selected != null) { if (je.selected != "null") { string dt = File.ReadAllText(@"plugins\Transfer\transfer_cmd.json"); var json = DynamicJson.Parse(dt); int age = Convert.ToInt32(je.selected); if (json[age]["method"] == "cmd") { if (json[age]["cata"] != "端口" && json[age]["cata"] != "" && json[age]["cata"] != " " && json[age]["cata"] != null) { string ip = json[age]["data"]; int dk = Convert.ToInt32(json[age]["cata"]); api.transferserver(uuid, ip, dk); } else { api.sendText(uuid, "§l§4<----[Transfer]---->\n§l§4请修改配置文件!"); } } } } } return(true); }); return(false); } return(true); }); //聊天监听,处理命令方块; api.addAfterActListener(EventKey.onChat, e => { var je = BaseEvent.getFrom(e) as ChatEvent; if (je.chatstyle == "title") { if (je.msg != "" && je.msg != " ") { var uuid = getUUUD(je.playername); string[] ss = je.msg.Split(' '); if (ss[0] == "tr") { string ip = ss[1]; int dk = Convert.ToInt32(ss[2]); api.transferserver(uuid, ip, dk); } } } return(true); }); aicQ(); }