Example #1
0
 /// <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 读取失败!"); }
 }
Example #2
0
        /// <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();
        }
Example #3
0
        //主入口
        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();
        }