This commit is contained in:
Vaala Cat
2023-08-06 00:35:54 +08:00
parent c6473fd68a
commit 8f7bb8feba
9 changed files with 121 additions and 16 deletions

View File

@@ -92,7 +92,7 @@ func onSystemMsg(msg chat.Message, overlay bool) error {
func onPlayerMsg(msg chat.Message, validated bool) error {
go func() {
if msg.Translate != "commands.message.display.incoming" {
if msg.Translate == "commands.message.display.outgoing" {
return
}
log.Printf("Player: %s", msg)

View File

@@ -5,11 +5,14 @@ import (
"log"
"net/http"
"net/url"
"strconv"
"tg-mc/conf"
"tg-mc/models"
"tg-mc/services/utils"
commonUtils "tg-mc/utils"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"github.com/samber/lo"
"github.com/sirupsen/logrus"
)
@@ -102,6 +105,51 @@ func Run(sendFunc func(string)) {
return
}
if m.Command() == "get" {
if !utils.IsAdmin(m) &&
len(m.CommandArguments()) != 0 {
tm := tgbotapi.NewMessage(m.Chat.ID, "您不是管理员,没有该权限")
conf.Bot.Send(tm)
return
} else if utils.IsAdmin(m) &&
len(m.CommandArguments()) != 0 {
a := commonUtils.GetArgs(m.CommandArguments())
if len(a) != 2 {
tm := tgbotapi.NewMessage(m.Chat.ID, "参数错误,样例:\n```\n/get <tgid|username> <value>\n```")
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
return
}
if a[0] == "tgid" {
tgid, err := strconv.ParseInt(a[1], 10, 64)
if err != nil {
conf.Bot.Send(tgbotapi.NewMessage(m.Chat.ID, "ID错误应该为int64"))
return
}
u, err := models.GetUserByTGID(tgid)
if err != nil {
tm := tgbotapi.NewMessage(m.Chat.ID, fmt.Sprintf("查询出错err\n```\n%+v\n```", err))
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
return
}
tm := tgbotapi.NewMessage(m.Chat.ID, fmt.Sprintf("用户信息:\n```\n%+v\n```", u))
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
}
if a[0] == "username" {
u, err := models.GetUserByMCName(a[1])
if err != nil {
tm := tgbotapi.NewMessage(m.Chat.ID, fmt.Sprintf("查询出错err\n```\n%+v\n```", err))
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
return
}
tm := tgbotapi.NewMessage(m.Chat.ID, fmt.Sprintf("用户信息:\n```\n%+v\n```", u))
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
}
return
}
logrus.Infof("id is %d", m.Chat.ID)
u, err := models.GetUserByTGID(m.From.ID)
if err != nil {
@@ -113,6 +161,42 @@ func Run(sendFunc func(string)) {
conf.Bot.Send(m)
return
}
if m.Command() == "set" {
if !utils.IsAdmin(m) {
tm := tgbotapi.NewMessage(m.Chat.ID, "您不是管理员,没有该权限")
conf.Bot.Send(tm)
return
}
a := commonUtils.GetArgs(m.CommandArguments())
if len(a) != 3 {
tm := tgbotapi.NewMessage(m.Chat.ID, "参数错误,样例:\n```\n/set username tgid status\n```")
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
return
}
tgid, err := strconv.ParseInt(a[1], 10, 64)
if err != nil {
conf.Bot.Send(tgbotapi.NewMessage(m.Chat.ID, "ID错误应该为int64"))
return
}
status, err := strconv.ParseInt(a[2], 10, 64)
if err != nil || !lo.Contains([]int64{0, 1, 2}, status) {
conf.Bot.Send(tgbotapi.NewMessage(m.Chat.ID, "Status错误应该为0(Pending),1(Normal),2(Banned)"))
return
}
if err := models.CreateUser(&models.User{
TGID: tgid,
MCName: a[0],
Status: int(status),
}); err != nil {
tm := tgbotapi.NewMessage(m.Chat.ID, fmt.Sprintf("创建用户错误err\n```\n%+v\n```", err))
tm.ParseMode = "Markdown"
conf.Bot.Send(tm)
return
}
conf.Bot.Send(tgbotapi.NewMessage(m.Chat.ID, "设置用户成功"))
return
}
}(update.Message)
}
}

View File

@@ -4,6 +4,7 @@ import (
"tg-mc/conf"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"github.com/samber/lo"
)
func SendMsg(msg string) error {
@@ -11,3 +12,8 @@ func SendMsg(msg string) error {
_, err := conf.Bot.Send(msgT)
return err
}
func IsAdmin(m *tgbotapi.Message) bool {
return lo.Contains(conf.GetBotSettings().AdminID, m.From.ID) ||
lo.Contains(conf.GetBotSettings().AdminID, m.Chat.ID)
}