公会任命

master_0.05_aqlm
grimm 2024-04-02 16:23:45 +08:00
parent 0ff0bc218c
commit 38c06778f1
2 changed files with 21 additions and 7 deletions

View File

@ -94,30 +94,45 @@ public class GuildInfo extends MongoBase {
this.serverId = GameApplication.serverId;
}
public void addMembers(int type,int uid){
public void setMembers(Map<Integer, Set<Integer>> members) {
this.members = members;
updateString("members", members);
}
public void addMembers(int type, int uid){
if(!members.containsKey(type)){
members.put(type,new HashSet<>());
}
members.get(type).add(uid);
totalMembers++;
updateString("members." + type,members.get(type));
updateString("totalMembers",totalMembers);
setMembers(members);
}
public boolean removeMember(int type,int uid){
boolean remove = members.get(type).remove(uid);
if(remove){
totalMembers--;
updateString("members." + type,members.get(type));
updateString("totalMembers",totalMembers);
setMembers(members);
}
return remove;
}
public void appointMember(int oldPost, int newPost, int uid){
boolean removed = members.get(oldPost).remove(uid);
if(removed){
if(!members.containsKey(newPost)){
members.put(newPost,new HashSet<>());
}
members.get(newPost).add(uid);
}
setMembers(members);
}
public void setAnnounce(String announce) {
this.announce = announce;
updateString("announce",announce);
}
public int getId() {

View File

@ -685,7 +685,7 @@ public class GuildLogic {
GuildInfo guildInfo = GuilidManager.getGuildInfo(targetGuildId);
int uidType = getMemberType(uid, guildInfo.getMembers());
boolean isIn=false;
boolean isIn = false;
for(Set<Integer> memberEntry : guildInfo.getMembers().values()){
if(memberEntry.contains(targetUid)){
isIn =true;
@ -707,8 +707,7 @@ public class GuildLogic {
throw new ErrorCodeException(ErrorCode.FAMILY_LEADER_MAX);
}
}
guildInfo.removeMember(targetType,targetUid);
guildInfo.addMembers(position,targetUid);
guildInfo.appointMember(targetType, position, targetUid);
sendPositionChange(targetUid,position,guildId);
if(position == GlobalsDef.CHAIRMAN){
guildInfo.removeMember(GlobalsDef.CHAIRMAN,uid);