Add 踢出成员

This commit is contained in:
殷勇 2023-08-23 11:07:42 +08:00
parent e5adb3e3d0
commit 5f4c6ffe63
3 changed files with 44 additions and 28 deletions

View File

@ -206,12 +206,19 @@ func (gm *GuildMgr) insertGuildMember(guildId int64, member *GuildMember) {
{"guild_id", q5.ToString(guildId)},
{"account_id", member.AccountId},
{"level", q5.ToString(member.Level)},
{"is_leave_guild", "0"},
}
f5.GetJsStyleDb().Replace(
FRIEND_DB,
"t_guild_members",
fields,
func(error, int64, int64) {},
func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil {
fmt.Printf("error:%v\n", err)
}
fmt.Printf("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected)
},
)
}
@ -231,6 +238,12 @@ func (gm *GuildMgr) updateGuildMember(g *Guild, fields [][]string, newWhere []st
"t_guild_members",
fields,
where,
func(error, int64, int64) {},
func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil {
fmt.Printf("error:%v\n", err)
}
fmt.Printf("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected)
},
)
}

View File

@ -87,7 +87,7 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string) error
return nil
}
// Approve 批准申请加入公会
// Approve 同意申请者加入公会
func (gm *GuildMgr) Approve(guildId int64, operatorAccountId, accountId string) error {
guild, exists := gm.Guilds[guildId]
if !exists {
@ -125,7 +125,7 @@ func (gm *GuildMgr) Approve(guildId int64, operatorAccountId, accountId string)
return nil
}
// Reject 拒绝申请加入公会
// Reject 拒绝申请加入公会
func (gm *GuildMgr) Reject(guildId int64, applicantAccountId string) error {
_, exists := gm.pendingReqs[guildId]
if !exists {
@ -140,7 +140,7 @@ func (gm *GuildMgr) Reject(guildId int64, applicantAccountId string) error {
}
// JoinGuild 可直接加入公会
//func (gm *GuildMgr) JoinGuild(guildId int64, memberID string) error {
//func (gm *GuildMgr) JoinGuild(guildId int64, accountId string) error {
// guild, exists := gm.Guilds[guildId]
// if !exists {
// return fmt.Errorf("guild not found")
@ -150,28 +150,28 @@ func (gm *GuildMgr) Reject(guildId int64, applicantAccountId string) error {
// return fmt.Errorf("guild is full")
// }
//
// newMember := GuildMember{AccountId: memberID, Level: 3}
// newMember := GuildMember{AccountId: accountId, Level: 3}
// guild.Members = append(guild.Members, newMember)
// return nil
//}
// LeaveGuild 离开公会
func (gm *GuildMgr) LeaveGuild(guildId int64, memberID string) error {
func (gm *GuildMgr) LeaveGuild(guildId int64, accountId string) error {
guild, exists := gm.Guilds[guildId]
if !exists {
return fmt.Errorf("guild not found")
}
if guild.LeaderId == memberID {
if guild.LeaderId == accountId {
return fmt.Errorf("leader not leave guild")
}
member, err := guild.GetMember(memberID)
member, err := guild.GetMember(accountId)
if err != nil {
return fmt.Errorf("member not found in the guild")
}
_ = guild.RemoveMember(memberID)
_ = guild.RemoveMember(accountId)
fields := [][]string{{"is_leave_guild", q5.ToString(1)}}
where := []string{"account_id", q5.ToString(member.AccountId)}
gm.updateGuildMember(guild, fields, where)
@ -180,25 +180,28 @@ func (gm *GuildMgr) LeaveGuild(guildId int64, memberID string) error {
}
// DismissMember 开除成员 踢出
func (gm *GuildMgr) DismissMember(guildId int64, operatorAccountId, memberID string) error {
func (gm *GuildMgr) DismissMember(guildId int64, operatorAccountId, accountId string) error {
guild, exists := gm.Guilds[guildId]
if !exists {
return fmt.Errorf("guild not found")
}
if memberID == guild.LeaderId {
if accountId == guild.LeaderId {
return fmt.Errorf("cannot dismiss the leader")
}
operatorMember, err := guild.GetMember(operatorAccountId)
// 公会干部及以上仅可操作
operatorPermLevel := 2
err := gm.checkOperatorPerm(guild, operatorAccountId, operatorPermLevel)
if err != nil {
return fmt.Errorf("cannot dismiss the leader")
}
if operatorMember.Level >= 2 {
return fmt.Errorf("no permission")
return err
}
dismissMember, err := guild.GetMember(memberID)
if operatorAccountId == accountId {
return fmt.Errorf("member not dismiss")
}
dismissMember, err := guild.GetMember(accountId)
if err != nil {
return fmt.Errorf("member not found in the guild")
}
@ -206,7 +209,7 @@ func (gm *GuildMgr) DismissMember(guildId int64, operatorAccountId, memberID str
return fmt.Errorf("no permission")
}
_ = guild.RemoveMember(memberID)
_ = guild.RemoveMember(accountId)
fields := [][]string{{"is_leave_guild", q5.ToString(1)}}
where := []string{"account_id", q5.ToString(dismissMember.AccountId)}
gm.updateGuildMember(guild, fields, where)
@ -215,17 +218,17 @@ func (gm *GuildMgr) DismissMember(guildId int64, operatorAccountId, memberID str
}
// PromoteMember 提升成员为干部
func (gm *GuildMgr) PromoteMember(guildId int64, operatorAccountId, memberID string) error {
func (gm *GuildMgr) PromoteMember(guildId int64, operatorAccountId, accountId string) error {
guild, exists := gm.Guilds[guildId]
if !exists {
return fmt.Errorf("guild not found")
}
if memberID == guild.LeaderId {
if accountId == guild.LeaderId {
return fmt.Errorf("cannot promote the leader")
}
member, err := guild.GetMember(memberID)
member, err := guild.GetMember(accountId)
if err != nil {
return fmt.Errorf("member not found in the guild")
}
@ -240,17 +243,17 @@ func (gm *GuildMgr) PromoteMember(guildId int64, operatorAccountId, memberID str
}
// DemoteMember 解除成员干部身份
func (gm *GuildMgr) DemoteMember(guildId int64, operatorAccountId, memberID string) error {
func (gm *GuildMgr) DemoteMember(guildId int64, operatorAccountId, accountId string) error {
guild, exists := gm.Guilds[guildId]
if !exists {
return fmt.Errorf("guild not found")
}
if memberID == guild.LeaderId {
if accountId == guild.LeaderId {
return fmt.Errorf("cannot demote the leader")
}
member, err := guild.GetMember(memberID)
member, err := guild.GetMember(accountId)
if err != nil {
return fmt.Errorf("member not found in the guild")
}

View File

@ -206,7 +206,7 @@ func (p *Player) CMCreateGuild(hdr *f5.MsgHdr, msg *cs.CMCreateGuild) {
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
}
// CMApplyToGuild 申请加入公会
// CMApplyToGuild 同意申请加入公会
func (p *Player) CMApplyToGuild(hdr *f5.MsgHdr, msg *cs.CMApplyToGuild) {
rspMsg := new(cs.SMApplyToGuild)
guildId := msg.GetGuildId()
@ -222,7 +222,7 @@ func (p *Player) CMApplyToGuild(hdr *f5.MsgHdr, msg *cs.CMApplyToGuild) {
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
}
// CMApprove 批准申请加入公会
// CMApprove 同意申请者加入公会
func (p *Player) CMApprove(hdr *f5.MsgHdr, msg *cs.CMApprove) {
rspMsg := new(cs.SMApprove)
guildId := msg.GetGuildId()
@ -241,7 +241,7 @@ func (p *Player) CMApprove(hdr *f5.MsgHdr, msg *cs.CMApprove) {
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
}
// CMReject 拒绝申请加入公会
// CMReject 拒绝申请加入公会
func (p *Player) CMReject(hdr *f5.MsgHdr, msg *cs.CMReject) {
rspMsg := new(cs.SMReject)
guildId := msg.GetGuildId()