This commit is contained in:
殷勇 2023-08-30 14:44:13 +08:00
parent cf7a3f542f
commit da7f8895a6
2 changed files with 9 additions and 12 deletions

View File

@ -45,6 +45,7 @@ const (
// im server guild
const (
RandomGuildCount = 10
MaxMembers = 10
MaxPendingReqs = 10
DefaultLogs = 20

View File

@ -432,16 +432,9 @@ func (gm *GuildMgr) SearchGuilds(keyword string) []Guild {
return results
}
func shuffleGuildIds(slice []*Guild) {
for i := len(slice) - 1; i > 0; i-- {
j := rand.Intn(i + 1)
slice[i], slice[j] = slice[j], slice[i]
}
}
// RandomGuilds 随机10个公会
func (gm *GuildMgr) RandomGuilds() []Guild {
guildCount := 10
guildCount := RandomGuildCount
count := len(gm.Guilds)
if count <= guildCount {
guildCount = count
@ -451,12 +444,15 @@ func (gm *GuildMgr) RandomGuilds() []Guild {
for _, guild := range gm.Guilds {
guildSlice = append(guildSlice, guild)
}
shuffleGuildIds(guildSlice)
randomlySelectedGuilds := guildSlice[:guildCount]
for i := 0; i < guildCount; i++ {
j := rand.Intn(len(guildSlice))
guildSlice[i], guildSlice[j] = guildSlice[j], guildSlice[i]
}
var results []Guild
for _, guild := range randomlySelectedGuilds {
results = append(results, *gm.Guilds[guild.GuildId])
for i := 0; i < guildCount; i++ {
results = append(results, *guildSlice[i])
}
return results
}