2023-08-17 16:50:53 +08:00

66 lines
1.3 KiB
Go

package main
import "errors"
type GuildMember struct {
AccountId string
Level int // 1: 会长, 2: 干部, 3: 成员
}
type Guild struct {
ID int
Name string
LeaderID string
Members []GuildMember
MaxMembers int
}
type GuildLog struct {
GuildId int
AccountId string
LogType uint16
Content string
}
func (g *Guild) findMemberIndex(AccountId string) int {
for i, member := range g.Members {
if member.AccountId == AccountId {
return i
}
}
return -1
}
// GetMember 获取成员
func (g *Guild) GetMember(accountId string) (*GuildMember, error) {
index := g.findMemberIndex(accountId)
if index == -1 {
return nil, errors.New("member not found")
}
return &g.Members[index], nil
}
// AddMember 添加成员
func (g *Guild) AddMember(member GuildMember) error {
if len(g.Members) >= g.MaxMembers {
return errors.New("guild is full")
}
g.Members = append(g.Members, member)
return nil
}
// RemoveMember 移除成员
func (g *Guild) RemoveMember(accountId string) error {
if accountId == g.LeaderID {
return errors.New("cannot remove leader")
}
index := g.findMemberIndex(accountId)
if index == -1 {
return errors.New("member not found")
}
g.Members = append(g.Members[:index], g.Members[index+1:]...)
return nil
}