        public static byte[] showGuildInfo(MapleCharacter chr) {
                final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
                mplew.writeShort(SendOpcode.GUILD_OPERATION.getValue());
                mplew.write(0x1A); //signature for showing guild info
                if (chr == null) { //show empty guild (used for leaving, expelled)
                        mplew.write(0);
                        return mplew.getPacket();
                }
                MapleGuild g = chr.getClient().getWorldServer().getGuild(chr.getMGC());
                if (g == null) { //failed to read from DB - don't show a guild
                        mplew.write(0);
                        return mplew.getPacket();
                }
                mplew.write(1); //bInGuild
                mplew.writeInt(g.getId());
                mplew.writeMapleAsciiString(g.getName());
                for (int i = 1; i <= 5; i++) {
                        mplew.writeMapleAsciiString(g.getRankTitle(i));
                }
                Collection<MapleGuildCharacter> members = g.getMembers();
                mplew.write(members.size()); //then it is the size of all the members
                for (MapleGuildCharacter mgc : members) {//and each of their character ids o_O
                        mplew.writeInt(mgc.getId());
                }
                for (MapleGuildCharacter mgc : members) {
                        mplew.writeAsciiString(StringUtil.getRightPaddedStr(mgc.getName(), '\0', 13));//公会支持中文
                        mplew.writeInt(mgc.getJobId());
                        mplew.writeInt(mgc.getLevel());
                        mplew.writeInt(mgc.getGuildRank());
                        mplew.writeInt(mgc.isOnline() ? 1 : 0);
                        mplew.writeInt(g.getSignature());
                        mplew.writeInt(mgc.getAllianceRank());
                }
