mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2026-02-13 02:30:26 +00:00
✨ 应用插件控制到大部分插件
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"strings"
|
||||
|
||||
zero "github.com/wdvxdr1123/ZeroBot"
|
||||
"github.com/wdvxdr1123/ZeroBot/extension"
|
||||
"github.com/wdvxdr1123/ZeroBot/message"
|
||||
)
|
||||
|
||||
@@ -36,30 +37,28 @@ type resultjson struct {
|
||||
} `json:"players"`
|
||||
}
|
||||
|
||||
var (
|
||||
servers = make(map[string]string)
|
||||
)
|
||||
|
||||
func init() {
|
||||
zero.OnRegex(`^/list (.*)$`).
|
||||
// 这里填对应mc服务器的登录地址
|
||||
servers["ftbi"] = "115.28.186.22:25710"
|
||||
servers["ges"] = "115.28.186.22:25701"
|
||||
|
||||
engine.OnCommand("mclist").
|
||||
Handle(func(ctx *zero.Ctx) {
|
||||
model := extension.CommandModel{}
|
||||
_ = ctx.Parse(&model)
|
||||
// 支持多个服务器
|
||||
switch ctx.State["regex_matched"].([]string)[1] {
|
||||
case "ftbi": // 这里对应触发指令里的服务器名称
|
||||
ftbijson := infoapi("115.28.186.22:25710") // 这里填对应mc服务器的登录地址
|
||||
var str = ftbijson.Players.List
|
||||
cs := strings.Join(str, "\n")
|
||||
ctx.SendChain(message.Text(
|
||||
"服务器名字: ", ftbijson.Motd.Raw[0], "\n",
|
||||
"在线人数: ", ftbijson.Players.Online, "/", ftbijson.Players.Max, "\n",
|
||||
"以下为玩家名字: ", "\n", cs,
|
||||
))
|
||||
case "ges": // 这里对应触发指令里的服务器名称
|
||||
gesjson := infoapi("115.28.186.22:25701") // 这里填对应mc服务器的登录地址
|
||||
var str = gesjson.Players.List
|
||||
cs := strings.Join(str, "\n")
|
||||
ctx.SendChain(message.Text(
|
||||
"服务器名字: ", gesjson.Motd.Raw[0], "\n",
|
||||
"在线人数: ", gesjson.Players.Online, "/", gesjson.Players.Max, "\n",
|
||||
"以下为玩家名字: ", "\n", cs,
|
||||
))
|
||||
}
|
||||
gesjson := infoapi(servers[model.Args])
|
||||
var str = gesjson.Players.List
|
||||
cs := strings.Join(str, "\n")
|
||||
ctx.SendChain(message.Text(
|
||||
"服务器名字: ", gesjson.Motd.Raw[0], "\n",
|
||||
"在线人数: ", gesjson.Players.Online, "/", gesjson.Players.Max, "\n",
|
||||
"以下为玩家名字: ", "\n", cs,
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/FloatTech/ZeroBot-Plugin/control"
|
||||
zero "github.com/wdvxdr1123/ZeroBot"
|
||||
"github.com/wdvxdr1123/ZeroBot/extension"
|
||||
"github.com/wdvxdr1123/ZeroBot/message"
|
||||
)
|
||||
|
||||
@@ -14,29 +16,40 @@ import (
|
||||
// 项目地址: https://github.com/Suwings/MCSManager
|
||||
// 项目的api文档: https://github.com/Suwings/MCSManager/wiki/API-Documentation
|
||||
|
||||
func init() {
|
||||
zero.OnRegex(`^/start (.*)$`).
|
||||
Handle(func(ctx *zero.Ctx) {
|
||||
name := ctx.State["regex_matched"].([]string)[1]
|
||||
ctx.SendChain(message.Text("开启服务器: ", name, "....."))
|
||||
result := start(name)
|
||||
ctx.Send(result)
|
||||
})
|
||||
}
|
||||
const api = "http://your.addr:23333/api/start_server/%s/?apikey=apikey"
|
||||
|
||||
var engine *zero.Engine
|
||||
|
||||
func init() {
|
||||
zero.OnRegex(`^/stop (.*)$`).
|
||||
engine = control.Register("minecraft", &control.Options{
|
||||
DisableOnDefault: false,
|
||||
Help: "minecraft\n" +
|
||||
"- /mcstart xxx\n" +
|
||||
"- /mcstop xxx\n" +
|
||||
"- /mclist servername\n" +
|
||||
"- https://github.com/Suwings/MCSManager",
|
||||
})
|
||||
engine.OnCommand("mcstart").
|
||||
Handle(func(ctx *zero.Ctx) {
|
||||
name := ctx.State["regex_matched"].([]string)[1]
|
||||
ctx.SendChain(message.Text("关闭服务器: ", name, "....."))
|
||||
result := stop(name)
|
||||
model := extension.CommandModel{}
|
||||
_ = ctx.Parse(&model)
|
||||
ctx.SendChain(message.Text("开启服务器: ", model.Args, "....."))
|
||||
result := start(model.Args)
|
||||
ctx.Send(result)
|
||||
})
|
||||
engine.OnCommand("mcstop").
|
||||
Handle(func(ctx *zero.Ctx) {
|
||||
model := extension.CommandModel{}
|
||||
_ = ctx.Parse(&model)
|
||||
ctx.SendChain(message.Text("开启服务器: ", model.Args, "....."))
|
||||
result := stop(model.Args)
|
||||
ctx.Send(result)
|
||||
})
|
||||
}
|
||||
|
||||
// 开启服务器的api请求
|
||||
func start(name string) string {
|
||||
url := fmt.Sprintf("http://your.addr:23333/api/start_server/%s/?apikey=apikey", name)
|
||||
url := fmt.Sprintf(api, name)
|
||||
client := &http.Client{}
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
@@ -57,7 +70,7 @@ func start(name string) string {
|
||||
|
||||
// 关闭服务器的api请求
|
||||
func stop(name string) string {
|
||||
url := fmt.Sprintf("http://your.addr:23333/api/stop_server/%s/?apikey=apikey", name)
|
||||
url := fmt.Sprintf(api, name)
|
||||
client := &http.Client{}
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user