From 511c96c57ef8011aab900f046c18ad75ffb6d2a2 Mon Sep 17 00:00:00 2001 From: Vaala Cat Date: Wed, 6 Dec 2023 21:40:12 +0800 Subject: [PATCH] feat: upgrade to new version go-mc --- go.mod | 4 +- go.sum | 38 +---------------- services/mc/auth.go | 87 +++++++++++++++++++------------------- services/mc/helper.go | 88 +++++++++++++++++++-------------------- services/tgbot/approve.go | 41 +++++++----------- services/tgbot/bot.go | 4 +- utils/cron.go | 1 + 7 files changed, 108 insertions(+), 155 deletions(-) diff --git a/go.mod b/go.mod index 2a9e43a..21c8b8e 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module tg-mc go 1.20 require ( - github.com/Tnze/go-mc v1.19.4 + github.com/Tnze/go-mc v1.20.2-0.20231123224931-bc3d77d78437 github.com/glebarez/sqlite v1.9.0 github.com/go-co-op/gocron v1.32.1 github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 @@ -35,4 +35,4 @@ require ( olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) -replace github.com/Tnze/go-mc => /Users/vaala/Workdir/Code/go-mc +// replace github.com/Tnze/go-mc => /Users/vaala/Workdir/Code/go-mc diff --git a/go.sum b/go.sum index 0c4f2ba..a8ae81a 100644 --- a/go.sum +++ b/go.sum @@ -1,45 +1,32 @@ -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/Tnze/go-mc v1.19.4-pre1 h1:0yBCeK9EGICdIzxSPbvD88HqcNRho8PRgKtpAC02W0E= -github.com/Tnze/go-mc v1.19.4-pre1/go.mod h1:c1znJQglgqa1Jjs3Dr29woN/msguiJrlNtWXhKedh2U= -github.com/Tnze/go-mc v1.19.4 h1:9qtxH+xRJWswOYnlf/dsFY4EI2f5jsFhtqTYOObaGIE= -github.com/Tnze/go-mc v1.19.4/go.mod h1:c1znJQglgqa1Jjs3Dr29woN/msguiJrlNtWXhKedh2U= +github.com/Tnze/go-mc v1.20.2-0.20231123224931-bc3d77d78437 h1:cINogPegf6TCIEmAon1kyVuKJttjoM0H7kyIM5WXre4= +github.com/Tnze/go-mc v1.20.2-0.20231123224931-bc3d77d78437/go.mod h1:geoRj2HsXSkB3FJBuhr7wCzXegRlzWsVXd7h7jiJ6aQ= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/glebarez/go-sqlite v1.21.1 h1:7MZyUPh2XTrHS7xNEHQbrhfMZuPSzhkm2A1qgg0y5NY= -github.com/glebarez/go-sqlite v1.21.1/go.mod h1:ISs8MF6yk5cL4n/43rSOmVMGJJjHYr7L2MbZZ5Q4E2E= github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo= github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k= -github.com/glebarez/sqlite v1.8.0 h1:02X12E2I/4C1n+v90yTqrjRa8yuo7c3KeHI3FRznCvc= -github.com/glebarez/sqlite v1.8.0/go.mod h1:bpET16h1za2KOOMb8+jCp6UBP/iahDpfPQqSaYLTLx8= github.com/glebarez/sqlite v1.9.0 h1:Aj6bPA12ZEx5GbSF6XADmCkYXlljPNUY+Zf1EQxynXs= github.com/glebarez/sqlite v1.9.0/go.mod h1:YBYCoyupOao60lzp1MVBLEjZfgkq0tdB1voAQ09K9zw= -github.com/go-co-op/gocron v1.28.3 h1:swTsge6u/1Ei51b9VLMz/YTzEzWpbsk5SiR7m5fklTI= -github.com/go-co-op/gocron v1.28.3/go.mod h1:39f6KNSGVOU1LO/ZOoZfcSxwlsJDQOKSu8erN0SH48Y= github.com/go-co-op/gocron v1.32.1 h1:h+StA6Qzlv+ImlCaLfA26rLN9eS/l4sO7oWmPUbRVIY= github.com/go-co-op/gocron v1.32.1/go.mod h1:UGz2oYvVS6PsqlwuOdo5L1Djsg/cQjxJ6T5ntkhp9Bg= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/ilyakaznacheev/cleanenv v1.4.2 h1:nRqiriLMAC7tz7GzjzUTBHfzdzw6SQ7XvTagkFqe/zU= -github.com/ilyakaznacheev/cleanenv v1.4.2/go.mod h1:i0owW+HDxeGKE0/JPREJOdSCPIyOnmh6C0xhWAkF/xA= github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -50,14 +37,11 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= @@ -67,8 +51,6 @@ github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XF github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= -github.com/sirupsen/logrus v1.9.1 h1:Ou41VVR3nMWWmTiEUnj0OlsgOSCUFgsPAOl6jRIcVtQ= -github.com/sirupsen/logrus v1.9.1/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -80,18 +62,12 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ= golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -103,24 +79,14 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= -gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.4 h1:iyNd8fNAe8W9dvtlgeRI5zSVZPsq3OpcTu37cYcpCmw= gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -modernc.org/libc v1.22.3 h1:D/g6O5ftAfavceqlLOFwaZuA5KYafKwmr30A6iSqoyY= -modernc.org/libc v1.22.3/go.mod h1:MQrloYP209xa2zHome2a8HLiLm6k0UT8CoHpV74tOFw= modernc.org/libc v1.24.1 h1:uvJSeCKL/AgzBo2yYIPPTy82v21KgGnizcGYfBHaNuM= modernc.org/libc v1.24.1/go.mod h1:FmfO1RLrU3MHJfyi9eYYmZBfi/R+tqZ6+hQ3yQQUkak= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= modernc.org/memory v1.7.1 h1:9J+2/GKTlV503mk3yv8QJ6oEpRCUrRy0ad8TXEPoV8M= modernc.org/memory v1.7.1/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= -modernc.org/sqlite v1.21.1 h1:GyDFqNnESLOhwwDRaHGdp2jKLDzpyT/rNLglX3ZkMSU= -modernc.org/sqlite v1.21.1/go.mod h1:XwQ0wZPIh1iKb5mkvCJ3szzbhk+tykC8ZWqTRTgYRwI= modernc.org/sqlite v1.25.0 h1:AFweiwPNd/b3BoKnBOfFm+Y260guGMF+0UFk0savqeA= modernc.org/sqlite v1.25.0/go.mod h1:FL3pVXie73rg3Rii6V/u5BoHlSoyeZeIgKZEgHARyCU= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= diff --git a/services/mc/auth.go b/services/mc/auth.go index 2a9ae1d..471e76f 100644 --- a/services/mc/auth.go +++ b/services/mc/auth.go @@ -1,52 +1,53 @@ package mc -import ( - "sync" - "tg-mc/models" - "time" -) +// import ( +// "sync" +// "tg-mc/models" +// "time" +// ) -type Auth interface { - IsAuthed(u models.User, expireMode bool) bool - Auth(u models.User) - Reject(u models.User) -} +// type Auth interface { +// IsAuthed(u models.User, expireMode bool) bool +// Auth(u models.User) +// Reject(u models.User) +// } -type Authcator struct { - UserMap *sync.Map -} +// type Authcator struct { +// UserMap *sync.Map +// } -var authcator *Authcator +// var authcator *Authcator -func GetAuthcator() Auth { - if authcator == nil { - authcator = &Authcator{ - UserMap: &sync.Map{}, - } - } - return authcator -} +// func GetAuthcator() Auth { +// if authcator == nil { +// authcator = &Authcator{ +// UserMap: &sync.Map{}, +// } +// } +// return authcator +// } -func (a *Authcator) IsAuthed(u models.User, expireMode bool) bool { - // if u.MCName != "VaalaCat" { - // return true - // } - if approveTime, ok := a.UserMap.Load(u.MCName); ok { - if !expireMode { - return true - } else if time.Since(approveTime.(time.Time)) < 30*time.Second { - return true - } else { - return false - } - } - return false -} +// func (a *Authcator) IsAuthed(u models.User, expireMode bool) bool { +// return true +// // if u.MCName != "VaalaCat" { +// // return true +// // } +// if approveTime, ok := a.UserMap.Load(u.MCName); ok { +// if !expireMode { +// return true +// } else if time.Since(approveTime.(time.Time)) < 30*time.Second { +// return true +// } else { +// return false +// } +// } +// return false +// } -func (a *Authcator) Auth(u models.User) { - a.UserMap.Store(u.MCName, time.Now()) -} +// func (a *Authcator) Auth(u models.User) { +// a.UserMap.Store(u.MCName, time.Now()) +// } -func (a *Authcator) Reject(u models.User) { - a.UserMap.Delete(u.MCName) -} +// func (a *Authcator) Reject(u models.User) { +// a.UserMap.Delete(u.MCName) +// } diff --git a/services/mc/helper.go b/services/mc/helper.go index 72897bd..b36d14a 100644 --- a/services/mc/helper.go +++ b/services/mc/helper.go @@ -4,10 +4,7 @@ import ( "crypto/rand" "encoding/binary" "errors" - "fmt" "tg-mc/conf" - "tg-mc/defs" - "tg-mc/models" su "tg-mc/services/utils" "tg-mc/utils" "time" @@ -15,8 +12,6 @@ import ( "github.com/Tnze/go-mc/chat" "github.com/Tnze/go-mc/data/packetid" "github.com/Tnze/go-mc/net/packet" - tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" - "github.com/sirupsen/logrus" ) func GetJoinedPlayer(m chat.Message) (userName string, err error) { @@ -36,45 +31,46 @@ func GetLeftPlayer(m chat.Message) (userName string, err error) { } func HandleJoinGame(userName string, mention bool, expireMode bool) { + // return - u, err := models.GetUserByMCName(userName) - if err != nil { - logrus.Error("get user name error: ", err) - } + // u, err := models.GetUserByMCName(userName) + // if err != nil { + // logrus.Error("get user name error: ", err) + // } - switch u.Status { - case StatusNormal: - if !GetAuthcator().IsAuthed(u, expireMode) { - m := tgbotapi.NewMessage(u.TGID, fmt.Sprintf("MC用户:%v 尝试登录,请手动允许,每次授权持续30秒", userName)) - m.ReplyMarkup = tgbotapi.NewInlineKeyboardMarkup( - tgbotapi.NewInlineKeyboardRow( - tgbotapi.NewInlineKeyboardButtonData("批准", defs.NewApproveCommand(u.MCName).ToJSON()), - tgbotapi.NewInlineKeyboardButtonData("拒绝", defs.NewRejectCommand(u.MCName).ToJSON())), - ) - conf.Bot.Send(m) - KickPlayer(userName) - return - } - if mention { - SendMsgToPlayer("欢迎回来!", userName) - } - case StatusPending: - SendMsgToPlayer("你还没有绑定 Telegram 哦, 5秒后你将会被踢出。请在群组中发送 /bind <你的 MC 用户名> 进行绑定。", userName) - time.Sleep(5 * time.Second) - KickPlayer(userName) - m := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, fmt.Sprintf("用户:%v 没有绑定,尝试登录已被T出", userName)) - conf.Bot.Send(m) - case StatusBanned: - SendMsgToPlayer("你已被封禁,如有疑问请联系管理员。", userName) - m := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, fmt.Sprintf("用户:%v 已被封禁,尝试登录已被T出", userName)) - conf.Bot.Send(m) - default: - SendMsgToPlayer("未知错误,请联系管理员,你将被踢出", userName) - time.Sleep(3 * time.Second) - KickPlayer(userName) - m := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, fmt.Sprintf("用户:%v 登录失败,错误未知,已被T出", userName)) - conf.Bot.Send(m) + // switch u.Status { + // case StatusNormal: + // if !GetAuthcator().IsAuthed(u, expireMode) { + // m := tgbotapi.NewMessage(u.TGID, fmt.Sprintf("MC用户:%v 尝试登录,请手动允许,每次授权持续30秒", userName)) + // m.ReplyMarkup = tgbotapi.NewInlineKeyboardMarkup( + // tgbotapi.NewInlineKeyboardRow( + // tgbotapi.NewInlineKeyboardButtonData("批准", defs.NewApproveCommand(u.MCName).ToJSON()), + // tgbotapi.NewInlineKeyboardButtonData("拒绝", defs.NewRejectCommand(u.MCName).ToJSON())), + // ) + // conf.Bot.Send(m) + // KickPlayer(userName) + // return + // } + if mention { + SendMsgToPlayer("欢迎回来!", userName) } + // case StatusPending: + // SendMsgToPlayer("你还没有绑定 Telegram 哦, 5秒后你将会被踢出。请在群组中发送 /bind <你的 MC 用户名> 进行绑定。", userName) + // time.Sleep(5 * time.Second) + // KickPlayer(userName) + // m := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, fmt.Sprintf("用户:%v 没有绑定,尝试登录已被T出", userName)) + // conf.Bot.Send(m) + // case StatusBanned: + // SendMsgToPlayer("你已被封禁,如有疑问请联系管理员。", userName) + // m := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, fmt.Sprintf("用户:%v 已被封禁,尝试登录已被T出", userName)) + // conf.Bot.Send(m) + // default: + // SendMsgToPlayer("未知错误,请联系管理员,你将被踢出", userName) + // time.Sleep(3 * time.Second) + // KickPlayer(userName) + // m := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, fmt.Sprintf("用户:%v 登录失败,错误未知,已被T出", userName)) + // conf.Bot.Send(m) + // } } func SendCommand(cmd string) error { @@ -114,9 +110,9 @@ func isBotMsg(msg chat.Message) bool { } func HandleLeftGame(userName string) { - u, err := models.GetUserByMCName(userName) - if err != nil { - logrus.Error("get user name error: ", err) - } - GetAuthcator().Reject(u) + // u, err := models.GetUserByMCName(userName) + // if err != nil { + // logrus.Error("get user name error: ", err) + // } + // GetAuthcator().Reject(u) } diff --git a/services/tgbot/approve.go b/services/tgbot/approve.go index a4f44f9..ae585fd 100644 --- a/services/tgbot/approve.go +++ b/services/tgbot/approve.go @@ -1,28 +1,17 @@ package tgbot -import ( - "fmt" - "tg-mc/conf" - "tg-mc/defs" - "tg-mc/models" - "tg-mc/services/mc" - - tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" - "github.com/sirupsen/logrus" -) - -func ApproveHandler(update tgbotapi.Update, cmd defs.Command) { - u, err := models.GetUserByTGID(update.CallbackQuery.From.ID) - if err != nil { - return - } - mc.GetAuthcator().Auth(u) - callback := tgbotapi.NewCallback(update.CallbackQuery.ID, "已授权") - if _, err := conf.Bot.Request(callback); err != nil { - logrus.Panic(err) - } - conf.Bot.Send(tgbotapi.NewDeleteMessage(update.CallbackQuery.Message.Chat.ID, - update.CallbackQuery.Message.MessageID)) - conf.Bot.Send(tgbotapi.NewMessage(update.CallbackQuery.Message.Chat.ID, - fmt.Sprintf("已授权☑️: %s 登录MC", u.MCName))) -} +// func ApproveHandler(update tgbotapi.Update, cmd defs.Command) { +// u, err := models.GetUserByTGID(update.CallbackQuery.From.ID) +// if err != nil { +// return +// } +// mc.GetAuthcator().Auth(u) +// callback := tgbotapi.NewCallback(update.CallbackQuery.ID, "已授权") +// if _, err := conf.Bot.Request(callback); err != nil { +// logrus.Panic(err) +// } +// conf.Bot.Send(tgbotapi.NewDeleteMessage(update.CallbackQuery.Message.Chat.ID, +// update.CallbackQuery.Message.MessageID)) +// conf.Bot.Send(tgbotapi.NewMessage(update.CallbackQuery.Message.Chat.ID, +// fmt.Sprintf("已授权☑️: %s 登录MC", u.MCName))) +// } diff --git a/services/tgbot/bot.go b/services/tgbot/bot.go index 0030456..b3c32cd 100644 --- a/services/tgbot/bot.go +++ b/services/tgbot/bot.go @@ -23,8 +23,8 @@ var funcHandlers = map[string]func(*tgbotapi.Message, interface{}){ } var callBackHandlers = map[string]func(tgbotapi.Update, defs.Command){ - defs.CMD_APPROVE: ApproveHandler, - defs.CMD_REJECT: RejectHandler, + // defs.CMD_APPROVE: ApproveHandler, + // defs.CMD_REJECT: RejectHandler, } func init() { diff --git a/utils/cron.go b/utils/cron.go index 8822858..878bb94 100644 --- a/utils/cron.go +++ b/utils/cron.go @@ -11,6 +11,7 @@ var ( ) func CronStart(f func()) { + return s.Every("1m").Do(f) s.StartAsync() }