diff --git a/server/channelserver/handlers_cast_binary_test.go b/server/channelserver/handlers_cast_binary_test.go index 4e9b07974..5dd408b2b 100644 --- a/server/channelserver/handlers_cast_binary_test.go +++ b/server/channelserver/handlers_cast_binary_test.go @@ -693,7 +693,7 @@ func BenchmarkSlicesContains(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - slices.Contains(courses, target) + _ = slices.Contains(courses, target) } } @@ -708,6 +708,6 @@ func BenchmarkSlicesIndexFunc(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - slices.IndexFunc(courses, predicate) + _ = slices.IndexFunc(courses, predicate) } } diff --git a/server/channelserver/handlers_discord.go b/server/channelserver/handlers_discord.go index 3144b5e7b..7f60ba8fe 100644 --- a/server/channelserver/handlers_discord.go +++ b/server/channelserver/handlers_discord.go @@ -4,69 +4,10 @@ import ( "fmt" "github.com/bwmarrin/discordgo" "golang.org/x/crypto/bcrypt" - "sort" "strings" "unicode" ) -type Player struct { - CharName string - QuestID int -} - -func getPlayerSlice(s *Server) []Player { - var p []Player - var questIndex int - - for _, channel := range s.Channels { - for _, stage := range channel.stages { - if len(stage.clients) == 0 { - continue - } - questID := 0 - if stage.isQuest() { - questIndex++ - questID = questIndex - } - for client := range stage.clients { - p = append(p, Player{ - CharName: client.Name, - QuestID: questID, - }) - } - } - } - return p -} - -func getCharacterList(s *Server) string { - questEmojis := []string{ - ":person_in_lotus_position:", - ":white_circle:", - ":red_circle:", - ":blue_circle:", - ":brown_circle:", - ":green_circle:", - ":purple_circle:", - ":yellow_circle:", - ":orange_circle:", - ":black_circle:", - } - - playerSlice := getPlayerSlice(s) - - sort.SliceStable(playerSlice, func(i, j int) bool { - return playerSlice[i].QuestID < playerSlice[j].QuestID - }) - - message := fmt.Sprintf("===== Online: %d =====\n", len(playerSlice)) - for _, player := range playerSlice { - message += fmt.Sprintf("%s %s", questEmojis[player.QuestID], player.CharName) - } - - return message -} - // onInteraction handles slash commands func (s *Server) onInteraction(ds *discordgo.Session, i *discordgo.InteractionCreate) { switch i.Interaction.ApplicationCommandData().Name { diff --git a/server/channelserver/handlers_guild.go b/server/channelserver/handlers_guild.go index 53d7ff9ab..fb6038ae9 100644 --- a/server/channelserver/handlers_guild.go +++ b/server/channelserver/handlers_guild.go @@ -642,6 +642,10 @@ func handleMsgMhfOperateGuild(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfOperateGuild) guild, err := GetGuildInfoByID(s, pkt.GuildID) + if err != nil { + doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + return + } characterGuildInfo, err := GetCharacterGuildData(s, s.charID) if err != nil { doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) @@ -1535,9 +1539,9 @@ func handleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfGetGuildManageRight(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetGuildManageRight) - guild, err := GetGuildInfoByCharacterId(s, s.charID) + guild, _ := GetGuildInfoByCharacterId(s, s.charID) if guild == nil || s.prevGuildID != 0 { - guild, err = GetGuildInfoByID(s, s.prevGuildID) + guild, err := GetGuildInfoByID(s, s.prevGuildID) s.prevGuildID = 0 if guild == nil || err != nil { doAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) diff --git a/server/channelserver/handlers_guild_scout.go b/server/channelserver/handlers_guild_scout.go index a599ec301..004faaf74 100644 --- a/server/channelserver/handlers_guild_scout.go +++ b/server/channelserver/handlers_guild_scout.go @@ -190,13 +190,13 @@ func handleMsgMhfAnswerGuildScout(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfGetGuildScoutList(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetGuildScoutList) - guildInfo, err := GetGuildInfoByCharacterId(s, s.charID) + guildInfo, _ := GetGuildInfoByCharacterId(s, s.charID) if guildInfo == nil && s.prevGuildID == 0 { doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) return } else { - guildInfo, err = GetGuildInfoByID(s, s.prevGuildID) + guildInfo, err := GetGuildInfoByID(s, s.prevGuildID) if guildInfo == nil || err != nil { doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) return diff --git a/server/channelserver/handlers_house.go b/server/channelserver/handlers_house.go index 8facf11af..d1e9660ba 100644 --- a/server/channelserver/handlers_house.go +++ b/server/channelserver/handlers_house.go @@ -442,13 +442,6 @@ func addWarehouseItem(s *Session, item mhfitem.MHFItemStack) { s.server.db.Exec("UPDATE warehouse SET item10=$1 WHERE character_id=$2", mhfitem.SerializeWarehouseItems(giftBox), s.charID) } -func addWarehouseEquipment(s *Session, equipment mhfitem.MHFEquipment) { - giftBox := warehouseGetEquipment(s, 10) - equipment.WarehouseID = token.RNG.Uint32() - giftBox = append(giftBox, equipment) - s.server.db.Exec("UPDATE warehouse SET equip10=$1 WHERE character_id=$2", mhfitem.SerializeWarehouseEquipment(giftBox), s.charID) -} - func warehouseGetItems(s *Session, index uint8) []mhfitem.MHFItemStack { initializeWarehouse(s) var data []byte diff --git a/server/channelserver/handlers_shop_gacha.go b/server/channelserver/handlers_shop_gacha.go index 096e0948e..9c2bf580d 100644 --- a/server/channelserver/handlers_shop_gacha.go +++ b/server/channelserver/handlers_shop_gacha.go @@ -469,10 +469,10 @@ func handleMsgMhfPlayNormalGacha(s *Session, p mhfpacket.MHFPacket) { entries = append(entries, entry) } - rewardEntries, err := getRandomEntries(entries, rolls, false) + rewardEntries, _ := getRandomEntries(entries, rolls, false) temp := byteframe.NewByteFrame() for i := range rewardEntries { - rows, err = s.server.db.Queryx(`SELECT item_type, item_id, quantity FROM gacha_items WHERE entry_id = $1`, rewardEntries[i].ID) + rows, err := s.server.db.Queryx(`SELECT item_type, item_id, quantity FROM gacha_items WHERE entry_id = $1`, rewardEntries[i].ID) if err != nil { continue } @@ -525,10 +525,10 @@ func handleMsgMhfPlayStepupGacha(s *Session, p mhfpacket.MHFPacket) { } guaranteedItems := getGuaranteedItems(s, pkt.GachaID, pkt.RollType) - rewardEntries, err := getRandomEntries(entries, rolls, false) + rewardEntries, _ := getRandomEntries(entries, rolls, false) temp := byteframe.NewByteFrame() for i := range rewardEntries { - rows, err = s.server.db.Queryx(`SELECT item_type, item_id, quantity FROM gacha_items WHERE entry_id = $1`, rewardEntries[i].ID) + rows, err := s.server.db.Queryx(`SELECT item_type, item_id, quantity FROM gacha_items WHERE entry_id = $1`, rewardEntries[i].ID) if err != nil { continue } @@ -621,7 +621,7 @@ func handleMsgMhfPlayBoxGacha(s *Session, p mhfpacket.MHFPacket) { entries = append(entries, entry) } } - rewardEntries, err := getRandomEntries(entries, rolls, true) + rewardEntries, _ := getRandomEntries(entries, rolls, true) for i := range rewardEntries { items, err := s.server.db.Queryx(`SELECT item_type, item_id, quantity FROM gacha_items WHERE entry_id = $1`, rewardEntries[i].ID) if err != nil { diff --git a/server/channelserver/sys_stage.go b/server/channelserver/sys_stage.go index b0f94a09a..4db9c5810 100644 --- a/server/channelserver/sys_stage.go +++ b/server/channelserver/sys_stage.go @@ -84,15 +84,3 @@ func (s *Stage) BroadcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) { session.QueueSendNonBlocking(bf.Data()) } } - -func (s *Stage) isCharInQuestByID(charID uint32) bool { - if _, exists := s.reservedClientSlots[charID]; exists { - return exists - } - - return false -} - -func (s *Stage) isQuest() bool { - return len(s.reservedClientSlots) > 0 -} diff --git a/server/signserver/dbutils.go b/server/signserver/dbutils.go index 1469af362..d1dcd7537 100644 --- a/server/signserver/dbutils.go +++ b/server/signserver/dbutils.go @@ -120,7 +120,7 @@ func (s *Server) getFriendsForCharacters(chars []character) []members { friends := make([]members, 0) for _, char := range chars { friendsCSV := "" - err := s.db.QueryRow("SELECT friends FROM characters WHERE id=$1", char.ID).Scan(&friendsCSV) + _ = s.db.QueryRow("SELECT friends FROM characters WHERE id=$1", char.ID).Scan(&friendsCSV) friendsSlice := strings.Split(friendsCSV, ",") friendQuery := "SELECT id, name FROM characters WHERE id=" for i := 0; i < len(friendsSlice); i++ { @@ -130,7 +130,7 @@ func (s *Server) getFriendsForCharacters(chars []character) []members { } } charFriends := make([]members, 0) - err = s.db.Select(&charFriends, friendQuery) + err := s.db.Select(&charFriends, friendQuery) if err != nil { continue } @@ -173,6 +173,9 @@ func (s *Server) deleteCharacter(cid int, token string, tokenID uint32) error { } var isNew bool err := s.db.QueryRow("SELECT is_new_character FROM characters WHERE id = $1", cid).Scan(&isNew) + if err != nil { + return err + } if isNew { _, err = s.db.Exec("DELETE FROM characters WHERE id = $1", cid) } else { @@ -184,19 +187,6 @@ func (s *Server) deleteCharacter(cid int, token string, tokenID uint32) error { return nil } -// Unused -func (s *Server) checkToken(uid uint32) (bool, error) { - var exists int - err := s.db.QueryRow("SELECT count(*) FROM sign_sessions WHERE user_id = $1", uid).Scan(&exists) - if err != nil { - return false, err - } - if exists > 0 { - return true, nil - } - return false, nil -} - func (s *Server) registerUidToken(uid uint32) (uint32, string, error) { _token := token.Generate(16) var tid uint32 diff --git a/server/signserver/sign_server.go b/server/signserver/sign_server.go index f93a6459a..c97b9da9a 100644 --- a/server/signserver/sign_server.go +++ b/server/signserver/sign_server.go @@ -24,7 +24,6 @@ type Server struct { sync.Mutex logger *zap.Logger erupeConfig *_config.Config - sessions map[int]*Session db *sqlx.DB listener net.Listener isShuttingDown bool