Замена предыдущего сообщения вместо нового

This commit is contained in:
Smile Rex
2025-01-25 19:52:44 +03:00
parent f1d1cb377f
commit 64c3b742cc

View File

@@ -2,6 +2,7 @@ package controllers
import (
"fmt"
"log"
"math/rand"
"strconv"
"strings"
@@ -105,62 +106,65 @@ func (s *DuelController) AcceptMatch(c tele.Context) error {
// Start Game
func (s *DuelController) gameProccess(r tele.Recipient) {
time.Sleep(time.Second * 3)
s.Bot.Send(r, fmt.Sprintf("Дуэль началась!\nНа кону: %d", s.Summ))
s.RoundOne(r)
msg, err := s.Bot.Send(r, fmt.Sprintf("Дуэль началась!\nНа кону: %d", s.Summ))
if err != nil {
log.Fatal(err)
}
s.RoundOne(msg)
}
// Round One
func (s *DuelController) RoundOne(r tele.Recipient) {
func (s *DuelController) RoundOne(msg *tele.Message) {
time.Sleep(time.Second * 3)
s.PlayerOne.Counter += rand.Intn(11) + 1
s.PlayerTwo.Counter += rand.Intn(11) + 1
s.Bot.Send(r,
msg, _ = s.Bot.Edit(msg,
fmt.Sprintf("Результаты первого раунда\n%s: %d очков.\n%s: %d очков.",
s.PlayerOne.FName, s.PlayerOne.Counter, s.PlayerTwo.FName, s.PlayerTwo.Counter),
)
s.RoundTwo(r)
s.RoundTwo(msg)
}
// Round Two
func (s *DuelController) RoundTwo(r tele.Recipient) {
func (s *DuelController) RoundTwo(msg *tele.Message) {
time.Sleep(time.Second * 3)
s.PlayerOne.Counter += rand.Intn(11) + 1
s.PlayerTwo.Counter += rand.Intn(11) + 1
s.Bot.Send(r,
msg, _ = s.Bot.Edit(msg,
fmt.Sprintf("Результаты второго раунда\n%s: %d очков.\n%s: %d очков.",
s.PlayerOne.FName, s.PlayerOne.Counter, s.PlayerTwo.FName, s.PlayerTwo.Counter),
)
s.RoundThree(r)
s.RoundThree(msg)
}
// Round Three
func (s *DuelController) RoundThree(r tele.Recipient) {
func (s *DuelController) RoundThree(msg *tele.Message) {
time.Sleep(time.Second * 3)
s.PlayerOne.Counter += rand.Intn(11) + 1
s.PlayerTwo.Counter += rand.Intn(11) + 1
s.Bot.Send(r,
msg, _ = s.Bot.Edit(msg,
fmt.Sprintf("Результаты третьего раунда\n%s: %d очков.\n%s: %d очков.",
s.PlayerOne.FName, s.PlayerOne.Counter, s.PlayerTwo.FName, s.PlayerTwo.Counter),
)
s.CheckWin(r)
s.CheckWin(msg)
}
// Check Win
func (s *DuelController) CheckWin(r tele.Recipient) {
func (s *DuelController) CheckWin(msg *tele.Message) {
userOne := s.DC.GetUser(s.PlayerOne.ID)
userTwo := s.DC.GetUser(s.PlayerTwo.ID)
time.Sleep(time.Second * 3)
if s.PlayerOne.Counter > s.PlayerTwo.Counter {
s.Bot.Send(r, fmt.Sprintf("%s победил!", s.PlayerOne.FName))
s.Bot.Edit(msg, fmt.Sprintf("%s победил!", s.PlayerOne.FName))
s.DC.UpdateDick(userOne.ID, userOne.DickSize+(s.Summ/2))
s.DC.UpdateDick(userTwo.ID, userTwo.DickSize-(s.Summ/2))
} else if s.PlayerOne.Counter < s.PlayerTwo.Counter {
s.Bot.Send(r, fmt.Sprintf("%s победил!", s.PlayerTwo.FName))
s.Bot.Edit(msg, fmt.Sprintf("%s победил!", s.PlayerTwo.FName))
s.DC.UpdateDick(userOne.ID, userOne.DickSize-(s.Summ/2))
s.DC.UpdateDick(userTwo.ID, userTwo.DickSize+(s.Summ/2))
} else if s.PlayerOne.Counter == s.PlayerTwo.Counter {
s.Bot.Send(r, "Ничья!")
s.Bot.Edit(msg, "Ничья!")
}
s.PlayerOne.Counter = 0