Untitled

 avatar
unknown
java
a month ago
4.3 kB
3
Indexable
// controlle.java 
public void messageSubcommand (Message ms){
    //addition
    case CMD.CLAN_PLEASE:
                        System.out.println("this is clan please");
                        _char.clanPlease(mss);
                        break;

                    case CMD.CLAN_ACCEPT_PLEASE:
                        System.out.println("this is clan accept please");
                        _char.acceptPleaseClan(mss);
                        break;
}
// mapservice.java
public void acceptPleaseClan(Char p) {
        Clan clan = p.clan;
        if (clan != null) {
            try {
                Message ms = messageSubCommand(CMD.CLAN_ACCEPT_PLEASE);
                DataOutputStream ds = ms.writer();
                ds.writeInt(p.id);
                ds.writeUTF(clan.getName());
                ds.writeByte(clan.getMemberByName(Char.setNameVip(p.name)).getType());
                ds.flush();
                sendMessage(ms);
                ms.cleanup();
            } catch (Exception ex) {
                Log.error("acceptpleaseClan err: " + ex.getMessage(), ex);
            }
        }
    }
    
// char.java 
public void acceptPleaseClan(Message ms) {
        try {
            int charId = ms.reader().readInt();
            System.out.println("charId" + charId);
            Char _char = zone.findCharById(charId);
            if (_char != null) {
                PlayerInvite c = this.invite.findCharInvite(Invite.XIN_VAO_GIA_TOC, _char.id);
                if (c == null) {
                    serverDialog("Đã hết thời gian chấp nhận vào gia tộc.");
                    return;
                }
                // Clan clan = _char.clan;
                // List<Member> members = clan.memberDAO.getAll();
                if (true) {
                    _char.clan = clan;
                    Member mem = Member.builder()
                            .classId(_char.classId)
                            .level(_char.level)
                            .type(Clan.TYPE_NORMAl)
                            .name(_char.name)
                            .pointClan(0)
                            .pointClanWeek(0)
                            .build();
                    mem.setChar(this);
                    mem.setOnline(true);
                    clan.memberDAO.save(mem);
                    zone.getService().acceptPleaseClan(this);
                    serverMessage("Thành viên đã gia nhập vào gia tộc " + this.clan.getName());
                    _char.serverMessage("Bạn đã gia nhập vào gia tộc " + this.clan.getName());
                    _char.getService().updateInfoMe();
                } else {
                    serverDialog("Gia tộc đã đủ thành viên.");
                }
            } else {
                serverDialog("Người mời đã rời khỏi khu vực.");
            }
        } catch (Exception ex) {
            Log.error("accept please clan err: " + ex.getMessage(), ex);
            serverDialog(ex.getMessage());
        }
    }
    
public void clanPlease(Message ms) {
        try {
            int charId = ms.reader().readInt();
            System.out.println("charID " + charId);
            Char _char = zone.findCharById(charId);
                // if (_char == null) {
                //     return;
                // }
                // if (this.clan == null) {
                //     return;
                // }
                Clan clan = _char.clan;
                List<Member> members = clan.memberDAO.getAll();
                PlayerInvite p = _char.invite.findCharInvite(Invite.XIN_VAO_GIA_TOC, this.id);
                if (p != null) {
                    serverDialog("Không thể xin vào vào liên tục. Vui lòng thử lại sau 30s nữa.");
                    return;
                }
                if (members.size() >= clan.getMemberMax()) {
                    serverMessage("Gia tộc đã đủ thành viên");
                    return;
                }
                _char.invite.addCharInvite(Invite.XIN_VAO_GIA_TOC, this.id, 30);
                _char.getService().clanplease(this);
        } catch (Exception ex) {
            // TODO: handle exception
            Log.error("err clan please: " + ex.getMessage(), ex);
        }
    }
Leave a Comment