From 295aaeb4c04d4be3ac6503453265cc136f8a6c3c Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Thu, 12 Oct 2023 19:13:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20room=20=E5=8C=85?= =?UTF-8?q?=E5=9C=A8=E4=BD=BF=E7=94=A8=20AddSeat=20=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=97=B6=E6=97=A0=E6=B3=95=E5=8A=A0=E5=85=A5=E7=A9=BA=E7=BC=BA?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/room/seat.go | 2 ++ game/room/seat_test.go | 54 ++++++++++++++++++++++++++++++++++++++++++ go.sum | 1 + 3 files changed, 57 insertions(+) create mode 100644 game/room/seat_test.go diff --git a/game/room/seat.go b/game/room/seat.go index 5878991..8c722c1 100644 --- a/game/room/seat.go +++ b/game/room/seat.go @@ -73,6 +73,7 @@ func (slf *Seat[PlayerID, P, R]) RemoveSeat(id PlayerID) { slf.mutex.Lock() defer slf.mutex.Unlock() seat := slf.seatPS.DeleteGet(id) + slf.vacancy = append(slf.vacancy, seat) slf.seatSP[seat] = nil } @@ -116,6 +117,7 @@ func (slf *Seat[PlayerID, P, R]) SetSeat(id PlayerID, seat int) int { } slf.seatSP[seat] = slf.seatSP[oldSeat] slf.seatSP[oldSeat] = nil + slf.vacancy = append(slf.vacancy, oldSeat) slf.seatPS.Set(id, seat) } slf.event.OnPlayerSeatChangeEvent(slf.room, slf.manager.GetPlayer(id), oldSeat, seat) diff --git a/game/room/seat_test.go b/game/room/seat_test.go new file mode 100644 index 0000000..d479341 --- /dev/null +++ b/game/room/seat_test.go @@ -0,0 +1,54 @@ +package room_test + +import ( + "fmt" + "github.com/kercylan98/minotaur/game/room" + "github.com/kercylan98/minotaur/server" + "testing" +) + +type Player struct { +} + +func (slf *Player) GetID() string { + return "" +} + +func (slf *Player) GetConn() *server.Conn { + return nil +} + +func (slf *Player) UseConn(conn *server.Conn) { + +} + +func (slf *Player) Close(err ...error) { + +} + +type Room struct { +} + +func (slf *Room) GetGuid() int64 { + return 0 +} + +func TestSeat_SetSeat(t *testing.T) { + rm := room.NewManager[string, *Player, *Room]() + + r := &Room{} + rm.CreateRoom(r) + helper := rm.GetHelper(r) + helper.AddSeat("a") + helper.AddSeat("b") + helper.RemoveSeat("a") + helper.AddSeat("c") + + for i, s := range helper.GetSeatInfo() { + if s == nil { + fmt.Println(i, "nil") + } else { + fmt.Println(i, *s) + } + } +} diff --git a/go.sum b/go.sum index 3664cde..830e467 100644 --- a/go.sum +++ b/go.sum @@ -274,6 +274,7 @@ golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=