From 83b664da93a27736ff1881e2cddb1946342540f3 Mon Sep 17 00:00:00 2001 From: CPunch Date: Wed, 23 Aug 2023 18:03:14 -0500 Subject: [PATCH] minor refactoring, fixed go-staticcheck warnings --- core/protocol/packet.go | 4 ++-- shard/join.go | 4 ++-- shard/shardserver.go | 25 +++++++++++-------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/core/protocol/packet.go b/core/protocol/packet.go index 7a69db8..42dce7f 100644 --- a/core/protocol/packet.go +++ b/core/protocol/packet.go @@ -31,7 +31,7 @@ func (pkt Packet) encodeStructField(field reflect.StructField, value reflect.Val case reflect.String: // all strings in fusionfall packets are encoded as utf16, we'll need to encode it sz, err := strconv.Atoi(field.Tag.Get("size")) if err != nil { - return fmt.Errorf("Failed to grab string 'size' tag!!") + return fmt.Errorf("failed to grab string 'size' tag") } buf16 := utf16.Encode([]rune(value.String())) @@ -100,7 +100,7 @@ func (pkt Packet) decodeStructField(field reflect.StructField, value reflect.Val case reflect.String: // all strings in fusionfall packets are encoded as utf16, we'll need to decode it sz, err := strconv.Atoi(field.Tag.Get("size")) if err != nil { - return fmt.Errorf("Failed to grab string 'size' tag!!") + return fmt.Errorf("failed to grab string 'size' tag") } buf16 := make([]uint16, sz) diff --git a/shard/join.go b/shard/join.go index bbe715d..fa7d477 100644 --- a/shard/join.go +++ b/shard/join.go @@ -11,9 +11,9 @@ import ( func (server *ShardServer) attachPlayer(peer *protocol.CNPeer, meta redis.LoginMetadata) (*entity.Player, error) { // resending a shard enter packet? - old, err := server.getPlayer(peer) + old, _ := server.getPlayer(peer) if old != nil { - return nil, fmt.Errorf("resent enter packet!") + return nil, fmt.Errorf("resent enter packet") } // attach player diff --git a/shard/shardserver.go b/shard/shardserver.go index 019b8b1..6caf447 100644 --- a/shard/shardserver.go +++ b/shard/shardserver.go @@ -16,8 +16,6 @@ import ( type PacketHandler func(peer *protocol.CNPeer, pkt protocol.Packet) error -func stubbedPacket(_ *protocol.CNPeer, _ protocol.Packet) error { /* stubbed */ return nil } - type ShardServer struct { listener net.Listener port int @@ -67,18 +65,17 @@ func NewShardServer(dbHndlr *db.DBHandler, redisHndlr *redis.RedisHandler, port } func (server *ShardServer) handleEvents() { - for { - select { - case event := <-server.eRecv: - switch event.Type { - case protocol.EVENT_CLIENT_DISCONNECT: - server.disconnect(event.Peer) - case protocol.EVENT_CLIENT_PACKET: - defer pool.Put(event.Pkt) - if err := server.handlePacket(event.Peer, event.PktID, protocol.NewPacket(event.Pkt)); err != nil { - event.Peer.Kill() - } + for event := range server.eRecv { + switch event.Type { + case protocol.EVENT_CLIENT_DISCONNECT: + server.disconnect(event.Peer) + case protocol.EVENT_CLIENT_PACKET: + if err := server.handlePacket(event.Peer, event.PktID, protocol.NewPacket(event.Pkt)); err != nil { + event.Peer.Kill() } + + // the packet is given to us by the event, so we'll need to make sure to return it to the pool + pool.Put(event.Pkt) } } } @@ -143,7 +140,7 @@ func (server *ShardServer) connect(peer *protocol.CNPeer) { func (server *ShardServer) getPlayer(peer *protocol.CNPeer) (*entity.Player, error) { plr, ok := server.peers[peer] if !ok { - return nil, fmt.Errorf("Player not found") + return nil, fmt.Errorf("player not found") } return plr, nil