package handling.channel.handler; import client.MapleCharacter; import client.MapleClient; import constants.GameConstants; import handling.SendPacketOpcode; import handling.channel.ChannelServer; import handling.world.MapleParty; import handling.world.MaplePartyCharacter; import handling.world.PartyOperation; import handling.world.World; import handling.world.exped.ExpeditionType; import handling.world.exped.MapleExpedition; import handling.world.exped.PartySearch; import handling.world.exped.PartySearchType; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import server.maps.Event_DojoAgent; import server.maps.FieldLimitType; import server.quest.MapleQuest; import tools.data.LittleEndianAccessor; import tools.packet.CWvsContext; public class PartyHandler { public static final void DenyPartyRequest(LittleEndianAccessor slea, MapleClient c) { int action = slea.readByte(); // if ((action == 0x23) && (GameConstants.GMS)) { // MapleCharacter chr = c.getPlayer().getMap().getCharacterById(slea.readInt()); // if ((chr != null) && (chr.getParty() == null) && (c.getPlayer().getParty() != null) && (c.getPlayer().getParty().getLeader().getId() == c.getPlayer().getId()) && (c.getPlayer().getParty().getMembers().size() < 6) && (c.getPlayer().getParty().getExpeditionId() <= 0) && (chr.getQuestNoAdd(MapleQuest.getInstance(122901)) == null) && (c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(122900)) == null)) { // chr.setParty(c.getPlayer().getParty()); // World.Party.updateParty(c.getPlayer().getParty().getId(), PartyOperation.JOIN, new MaplePartyCharacter(chr)); // chr.receivePartyMemberHP(); // chr.updatePartyMemberHP(); // chr.dropMessage(6, "penis"); // } // return; // } int partyid = slea.readInt(); if ((c.getPlayer().getParty() == null) && (c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(122901)) == null)) { MapleParty party = World.Party.getParty(partyid); if (party != null) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } if (action == 0x23) { if (party.getMembers().size() < 6) { c.getPlayer().setParty(party); World.Party.updateParty(partyid, PartyOperation.JOIN, new MaplePartyCharacter(c.getPlayer())); c.getPlayer().receivePartyMemberHP(); c.getPlayer().updatePartyMemberHP(); } else { c.getPlayer().dropMessage(5, "The party you are trying to join is full."); } } else if (action != 0x1F) { MapleCharacter cfrom = c.getChannelServer().getPlayerStorage().getCharacterById(party.getLeader().getId()); if (cfrom != null) { cfrom.getClient().getSession().write(CWvsContext.serverNotice(5, c.getPlayer().getName() + " has joined the party.")); } } } else { c.getPlayer().dropMessage(5, "The party you are trying to join does not exist"); } } else { c.getPlayer().dropMessage(5, "You can't join the party as you are already in one"); } } public static final void PartyOperation(LittleEndianAccessor slea, MapleClient c) { int operation = slea.readByte(); MapleParty party = c.getPlayer().getParty(); MaplePartyCharacter partyplayer = new MaplePartyCharacter(c.getPlayer()); switch (operation) { case 1: if (party == null) { party = World.Party.createParty(partyplayer); c.getPlayer().setParty(party); c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); } else { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } if ((partyplayer.equals(party.getLeader())) && (party.getMembers().size() == 1)) { c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); } else { c.getPlayer().dropMessage(5, "You can't create a party as you are already in one"); } } break; case 2: if (party != null) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } if (partyplayer.equals(party.getLeader())) { if (GameConstants.isDojo(c.getPlayer().getMapId())) { Event_DojoAgent.failed(c.getPlayer()); } if (c.getPlayer().getPyramidSubway() != null) { c.getPlayer().getPyramidSubway().fail(c.getPlayer()); } World.Party.updateParty(party.getId(), PartyOperation.DISBAND, partyplayer); if (c.getPlayer().getEventInstance() != null) { c.getPlayer().getEventInstance().disbandParty(); } } else { if (GameConstants.isDojo(c.getPlayer().getMapId())) { Event_DojoAgent.failed(c.getPlayer()); } if (c.getPlayer().getPyramidSubway() != null) { c.getPlayer().getPyramidSubway().fail(c.getPlayer()); } World.Party.updateParty(party.getId(), PartyOperation.LEAVE, partyplayer); if (c.getPlayer().getEventInstance() != null) { c.getPlayer().getEventInstance().leftParty(c.getPlayer()); } } c.getPlayer().setParty(null); } break; case 3: int partyid = slea.readInt(); if (party == null) { party = World.Party.getParty(partyid); if (party != null) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } if ((party.getMembers().size() < 6) && (c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(122901)) == null)) { c.getPlayer().setParty(party); World.Party.updateParty(party.getId(), PartyOperation.JOIN, partyplayer); c.getPlayer().receivePartyMemberHP(); c.getPlayer().updatePartyMemberHP(); } else { c.getPlayer().dropMessage(5, "Party is full."); } } else { c.getPlayer().dropMessage(5, "The party you are trying to join does not exist"); } } else { c.getPlayer().dropMessage(5, "You can't join the party as you are already in one"); } break; case 4: if (party == null) { party = World.Party.createParty(partyplayer); c.getPlayer().setParty(party); c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); } String theName = slea.readMapleAsciiString(); int theCh = World.Find.findChannel(theName); if (theCh > 0) { MapleCharacter invited = ChannelServer.getInstance(theCh).getPlayerStorage().getCharacterByName(theName); if ((invited != null) && (invited.getParty() == null) && (invited.getQuestNoAdd(MapleQuest.getInstance(122901)) == null)) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } if (party.getMembers().size() < 6) { c.getPlayer().dropMessage(6, invited.getName() + " invited"); invited.getClient().getSession().write(CWvsContext.PartyPacket.partyInvite(c.getPlayer())); } else { c.getPlayer().dropMessage(5, "Party is full."); } } else { c.getPlayer().dropMessage(5, "Already in a party."); } } else { c.getPlayer().dropMessage(5, "Player doesn't exist."); } break; case 5: if ((party != null) && (partyplayer != null) && (partyplayer.equals(party.getLeader()))) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } MaplePartyCharacter expelled = party.getMemberById(slea.readInt()); if (expelled != null) { if ((GameConstants.isDojo(c.getPlayer().getMapId())) && (expelled.isOnline())) { Event_DojoAgent.failed(c.getPlayer()); } if ((c.getPlayer().getPyramidSubway() != null) && (expelled.isOnline())) { c.getPlayer().getPyramidSubway().fail(c.getPlayer()); } World.Party.updateParty(party.getId(), PartyOperation.EXPEL, expelled); if (c.getPlayer().getEventInstance() != null) { if (expelled.isOnline()) { c.getPlayer().getEventInstance().disbandParty(); } } } } break; case 6: if (party != null) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } MaplePartyCharacter newleader = party.getMemberById(slea.readInt()); if ((newleader != null) && (partyplayer.equals(party.getLeader()))) { World.Party.updateParty(party.getId(), PartyOperation.CHANGE_LEADER, newleader); } } break; case 7: if (party != null) { if ((c.getPlayer().getEventInstance() != null) || (c.getPlayer().getPyramidSubway() != null) || (party.getExpeditionId() > 0) || (GameConstants.isDojo(c.getPlayer().getMapId()))) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } if (partyplayer.equals(party.getLeader())) { World.Party.updateParty(party.getId(), PartyOperation.DISBAND, partyplayer); } else { World.Party.updateParty(party.getId(), PartyOperation.LEAVE, partyplayer); } c.getPlayer().setParty(null); } int partyid_ = slea.readInt(); if (GameConstants.GMS) { party = World.Party.getParty(partyid_); if ((party != null) && (party.getMembers().size() < 6)) { if (party.getExpeditionId() > 0) { c.getPlayer().dropMessage(5, "You may not do party operations while in a raid."); return; } MapleCharacter cfrom = c.getPlayer().getMap().getCharacterById(party.getLeader().getId()); if ((cfrom != null) && (cfrom.getQuestNoAdd(MapleQuest.getInstance(122900)) == null)) { c.getSession().write(CWvsContext.PartyPacket.partyStatusMessage(50, c.getPlayer().getName())); cfrom.getClient().getSession().write(CWvsContext.PartyPacket.partyRequestInvite(c.getPlayer())); } else { c.getPlayer().dropMessage(5, "Player was not found or player is not accepting party requests."); } } } break; case 8: if (slea.readByte() > 0) { c.getPlayer().getQuestRemove(MapleQuest.getInstance(122900)); } else { c.getPlayer().getQuestNAdd(MapleQuest.getInstance(122900)); } break; default: System.out.println("Unhandled Party function." + operation); } } public static final void AllowPartyInvite(LittleEndianAccessor slea, MapleClient c) { if (slea.readByte() > 0) { c.getPlayer().getQuestRemove(MapleQuest.getInstance(122901)); } else { c.getPlayer().getQuestNAdd(MapleQuest.getInstance(122901)); } } public static final void MemberSearch(LittleEndianAccessor slea, MapleClient c) { if ((c.getPlayer().isInBlockedMap()) || (FieldLimitType.VipRock.check(c.getPlayer().getMap().getFieldLimit()))) { c.getPlayer().dropMessage(5, "You may not do party search here."); return; } c.getSession().write(CWvsContext.PartyPacket.showMemberSearch(c.getPlayer().getMap().getCharactersThreadsafe())); } public static final void PartySearch(LittleEndianAccessor slea, MapleClient c) { if ((c.getPlayer().isInBlockedMap()) || (FieldLimitType.VipRock.check(c.getPlayer().getMap().getFieldLimit()))) { c.getPlayer().dropMessage(5, "You may not do party search here."); return; } List parties = new ArrayList(); for (MapleCharacter chr : c.getPlayer().getMap().getCharactersThreadsafe()) { if (chr != null) { if ((chr.getParty() != null) && (chr.getParty().getId() != c.getPlayer().getParty().getId()) && (!parties.contains(chr.getParty()))) { parties.add(chr.getParty()); } } } c.getSession().write(CWvsContext.PartyPacket.showPartySearch(parties)); } public static final void PartyListing(LittleEndianAccessor slea, MapleClient c) { int mode = slea.readByte(); PartySearchType pst; switch (mode) { case -105: case -97: case 81: case 159: pst = PartySearchType.getById(slea.readInt()); if ((pst == null) || (c.getPlayer().getLevel() > pst.maxLevel) || (c.getPlayer().getLevel() < pst.minLevel)) { return; } if ((c.getPlayer().getParty() == null) && (World.Party.searchParty(pst).size() < 10)) { MapleParty party = World.Party.createParty(new MaplePartyCharacter(c.getPlayer()), pst.id); c.getPlayer().setParty(party); c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); PartySearch ps = new PartySearch(slea.readMapleAsciiString(), pst.exped ? party.getExpeditionId() : party.getId(), pst); World.Party.addSearch(ps); if (pst.exped) { c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(World.Party.getExped(party.getExpeditionId()), true, false)); } c.getSession().write(CWvsContext.PartyPacket.partyListingAdded(ps)); } else { c.getPlayer().dropMessage(1, "Unable to create. Please leave the party."); } break; case -103: case -95: case 83: case 161: pst = PartySearchType.getById(slea.readInt()); if ((pst == null) || (c.getPlayer().getLevel() > pst.maxLevel) || (c.getPlayer().getLevel() < pst.minLevel)) { return; } c.getSession().write(CWvsContext.PartyPacket.getPartyListing(pst)); break; case -102: case -94: case 84: case 162: break; case -101: case -93: case 85: case 163: MapleParty party = c.getPlayer().getParty(); MaplePartyCharacter partyplayer = new MaplePartyCharacter(c.getPlayer()); if (party == null) { int theId = slea.readInt(); party = World.Party.getParty(theId); if (party != null) { PartySearch ps = World.Party.getSearchByParty(party.getId()); if ((ps != null) && (c.getPlayer().getLevel() <= ps.getType().maxLevel) && (c.getPlayer().getLevel() >= ps.getType().minLevel) && (party.getMembers().size() < 6)) { c.getPlayer().setParty(party); World.Party.updateParty(party.getId(), PartyOperation.JOIN, partyplayer); c.getPlayer().receivePartyMemberHP(); c.getPlayer().updatePartyMemberHP(); } else { c.getSession().write(CWvsContext.PartyPacket.partyStatusMessage(21, null)); } } else { MapleExpedition exped = World.Party.getExped(theId); if (exped != null) { PartySearch ps = World.Party.getSearchByExped(exped.getId()); if ((ps != null) && (c.getPlayer().getLevel() <= ps.getType().maxLevel) && (c.getPlayer().getLevel() >= ps.getType().minLevel) && (exped.getAllMembers() < exped.getType().maxMembers)) { int partyId = exped.getFreeParty(); if (partyId < 0) { c.getSession().write(CWvsContext.PartyPacket.partyStatusMessage(21, null)); } else if (partyId == 0) { party = World.Party.createPartyAndAdd(partyplayer, exped.getId()); c.getPlayer().setParty(party); c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(exped, true, false)); World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionJoined(c.getPlayer().getName()), null); World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionUpdate(exped.getIndex(party.getId()), party), null); } else { c.getPlayer().setParty(World.Party.getParty(partyId)); World.Party.updateParty(partyId, PartyOperation.JOIN, partyplayer); c.getPlayer().receivePartyMemberHP(); c.getPlayer().updatePartyMemberHP(); c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(exped, true, false)); World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionJoined(c.getPlayer().getName()), null); } } else { c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(0, c.getPlayer().getName())); } } } } break; default: if (c.getPlayer().isGM()) { System.out.println("Unknown PartyListing : " + mode + "\n" + slea); } break; } } /* */ public static final void Expedition(LittleEndianAccessor slea, MapleClient c) /* */ { /* 414 */ if ((c.getPlayer() == null) || (c.getPlayer().getMap() == null)) { /* 415 */ return; /* */ } /* 417 */ int mode = slea.readByte(); /* */ String name; /* */ MapleParty part; /* */ MapleExpedition exped; /* */ int cid; /* */ Iterator i$; /* 420 */ switch (mode) /* */ { /* */ case 64: /* */ case 134: /* 424 */ ExpeditionType et = ExpeditionType.getById(slea.readInt()); /* 425 */ if ((et != null) && (c.getPlayer().getParty() == null) && (c.getPlayer().getLevel() <= et.maxLevel) && (c.getPlayer().getLevel() >= et.minLevel)) { /* 426 */ MapleParty party = World.Party.createParty(new MaplePartyCharacter(c.getPlayer()), et.exped); /* 427 */ c.getPlayer().setParty(party); /* 428 */ c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); /* 429 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(World.Party.getExped(party.getExpeditionId()), true, false)); /* */ } else { /* 431 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(0, "")); /* */ } /* 433 */ break; /* */ case 65: /* */ case 135: /* 437 */ name = slea.readMapleAsciiString(); /* 438 */ int theCh = World.Find.findChannel(name); /* 439 */ if (theCh > 0) { /* 440 */ MapleCharacter invited = ChannelServer.getInstance(theCh).getPlayerStorage().getCharacterByName(name); /* 441 */ MapleParty party = c.getPlayer().getParty(); /* 442 */ if ((invited != null) && (invited.getParty() == null) && (party != null) && (party.getExpeditionId() > 0)) { /* 443 */ MapleExpedition me = World.Party.getExped(party.getExpeditionId()); /* 444 */ if ((me != null) && (me.getAllMembers() < me.getType().maxMembers) && (invited.getLevel() <= me.getType().maxLevel) && (invited.getLevel() >= me.getType().minLevel)) { /* 445 */ // c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(7, invited.getName())); /* 446 */ // invited.getClient().getSession().write(CWvsContext.ExpeditionPacket.expeditionInvite(c.getPlayer(), me.getType().exped)); /* */ } else { /* 448 */ //c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(3, invited.getName())); /* */ } /* */ } else { /* 451 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(2, name)); /* */ } /* */ } else { /* 454 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(0, name)); /* */ } /* 456 */ break; /* */ case 66: /* */ case 136: /* 460 */ name = slea.readMapleAsciiString(); /* 461 */ int action = slea.readInt(); /* 462 */ int theChh = World.Find.findChannel(name); /* 463 */ if (theChh <= 0) { break; } /* 464 */ MapleCharacter cfrom = ChannelServer.getInstance(theChh).getPlayerStorage().getCharacterByName(name); /* 465 */ if ((cfrom != null) && (cfrom.getParty() != null) && (cfrom.getParty().getExpeditionId() > 0)) { /* 466 */ MapleParty party = cfrom.getParty(); /* 467 */ exped = World.Party.getExped(party.getExpeditionId()); /* 468 */ if ((exped != null) && (action == 8)) { /* 469 */ if ((c.getPlayer().getLevel() <= exped.getType().maxLevel) && (c.getPlayer().getLevel() >= exped.getType().minLevel) && (exped.getAllMembers() < exped.getType().maxMembers)) { /* 470 */ int partyId = exped.getFreeParty(); /* 471 */ if (partyId < 0) { /* 472 */ c.getSession().write(CWvsContext.PartyPacket.partyStatusMessage(21, null)); /* 473 */ } else if (partyId == 0) { /* 474 */ party = World.Party.createPartyAndAdd(new MaplePartyCharacter(c.getPlayer()), exped.getId()); /* 475 */ c.getPlayer().setParty(party); /* 476 */ c.getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); /* 477 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(exped, true, false)); /* 478 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionJoined(c.getPlayer().getName()), null); /* 479 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionUpdate(exped.getIndex(party.getId()), party), null); /* */ } else { /* 481 */ c.getPlayer().setParty(World.Party.getParty(partyId)); /* 482 */ World.Party.updateParty(partyId, PartyOperation.JOIN, new MaplePartyCharacter(c.getPlayer())); /* 483 */ c.getPlayer().receivePartyMemberHP(); /* 484 */ c.getPlayer().updatePartyMemberHP(); /* 485 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(exped, false, false)); /* 486 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionJoined(c.getPlayer().getName()), null); /* */ } /* */ } else { /* 489 */ c.getSession().write(CWvsContext.ExpeditionPacket.expeditionError(3, cfrom.getName())); /* */ } /* 491 */ } else if (action == 9) { /* 492 */ cfrom.getClient().getSession().write(CWvsContext.PartyPacket.partyStatusMessage(23, c.getPlayer().getName())); /* */ } /* */ } /* 495 */ break; /* */ case 67: /* */ case 137: /* 500 */ part = c.getPlayer().getParty(); /* 501 */ if ((part == null) || (part.getExpeditionId() <= 0)) { break; } /* 502 */ exped = World.Party.getExped(part.getExpeditionId()); /* 503 */ if (exped != null) { /* 504 */ if (GameConstants.isDojo(c.getPlayer().getMapId())) { /* 505 */ Event_DojoAgent.failed(c.getPlayer()); /* */ } /* 507 */ if (exped.getLeader() == c.getPlayer().getId()) { /* 508 */ World.Party.disbandExped(exped.getId()); /* 509 */ if (c.getPlayer().getEventInstance() != null) /* 510 */ { c.getPlayer().getEventInstance().disbandParty(); } /* */ } /* 512 */ else if (part.getLeader().getId() == c.getPlayer().getId()) { /* 513 */ World.Party.updateParty(part.getId(), PartyOperation.DISBAND, new MaplePartyCharacter(c.getPlayer())); /* 514 */ if (c.getPlayer().getEventInstance() != null) { /* 515 */ c.getPlayer().getEventInstance().disbandParty(); /* */ } /* 517 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionLeft(c.getPlayer().getName()), null); /* */ } else { /* 519 */ World.Party.updateParty(part.getId(), PartyOperation.LEAVE, new MaplePartyCharacter(c.getPlayer())); /* 520 */ if (c.getPlayer().getEventInstance() != null) { /* 521 */ c.getPlayer().getEventInstance().leftParty(c.getPlayer()); /* */ } /* 523 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionLeft(c.getPlayer().getName()), null); /* */ } /* 525 */ if (c.getPlayer().getPyramidSubway() != null) { /* 526 */ c.getPlayer().getPyramidSubway().fail(c.getPlayer()); /* */ } /* 528 */ c.getPlayer().setParty(null); /* */ } /* 530 */ break; /* */ case 68: /* */ case 138: /* 535 */ part = c.getPlayer().getParty(); /* 536 */ if ((part == null) || (part.getExpeditionId() <= 0)) { break; } /* 537 */ exped = World.Party.getExped(part.getExpeditionId()); /* 538 */ if ((exped != null) && (exped.getLeader() == c.getPlayer().getId())) { /* 539 */ cid = slea.readInt(); /* 540 */ for (i$ = exped.getParties().iterator(); i$.hasNext();) { int i = ((Integer) i$.next()).intValue(); /* 541 */ MapleParty par = World.Party.getParty(i); /* 542 */ if (par != null) { /* 543 */ MaplePartyCharacter expelled = par.getMemberById(cid); /* 544 */ if (expelled != null) { /* 545 */ if ((expelled.isOnline()) && (GameConstants.isDojo(c.getPlayer().getMapId()))) { /* 546 */ Event_DojoAgent.failed(c.getPlayer()); /* */ } /* 548 */ World.Party.updateParty(i, PartyOperation.EXPEL, expelled); /* 549 */ if ((c.getPlayer().getEventInstance() != null) && /* 550 */ (expelled.isOnline())) { /* 551 */ c.getPlayer().getEventInstance().disbandParty(); /* */ } /* */ /* 554 */ if ((c.getPlayer().getPyramidSubway() != null) && (expelled.isOnline())) { /* 555 */ c.getPlayer().getPyramidSubway().fail(c.getPlayer()); /* */ } /* 557 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionLeft(expelled.getName()), null); /* 558 */ break; /* */ } /* */ } /* */ } /* */ } /* 563 */ break; /* */ case 69: /* */ case 139: /* 568 */ part = c.getPlayer().getParty(); /* 569 */ if ((part == null) || (part.getExpeditionId() <= 0)) { break; } /* 570 */ exped = World.Party.getExped(part.getExpeditionId()); /* 571 */ if ((exped != null) && (exped.getLeader() == c.getPlayer().getId())) { /* 572 */ MaplePartyCharacter newleader = part.getMemberById(slea.readInt()); /* 573 */ if (newleader != null) { /* 574 */ World.Party.updateParty(part.getId(), PartyOperation.CHANGE_LEADER, newleader); /* 575 */ exped.setLeader(newleader.getId()); /* 576 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionLeaderChanged(0), null); /* */ } /* */ } /* 579 */ break; /* */ case 70: /* */ case 140: /* 584 */ part = c.getPlayer().getParty(); /* 585 */ if ((part == null) || (part.getExpeditionId() <= 0)) { break; } /* 586 */ exped = World.Party.getExped(part.getExpeditionId()); /* 587 */ if ((exped != null) && (exped.getLeader() == c.getPlayer().getId())) { /* 588 */ cid = slea.readInt(); /* 589 */ for (i$ = exped.getParties().iterator(); i$.hasNext();) { int i = ((Integer) i$.next()).intValue(); /* 590 */ MapleParty par = World.Party.getParty(i); /* 591 */ if (par != null) { /* 592 */ MaplePartyCharacter newleader = par.getMemberById(cid); /* 593 */ if ((newleader != null) && (par.getId() != part.getId())) { /* 594 */ World.Party.updateParty(par.getId(), PartyOperation.CHANGE_LEADER, newleader); /* */ } /* */ } /* */ } /* */ } /* 599 */ break; /* */ case 71: /* */ case 141: /* 604 */ part = c.getPlayer().getParty(); /* 605 */ if ((part == null) || (part.getExpeditionId() <= 0)) { break; } /* 606 */ exped = World.Party.getExped(part.getExpeditionId()); /* 607 */ if ((exped != null) && (exped.getLeader() == c.getPlayer().getId())) { /* 608 */ int partyIndexTo = slea.readInt(); /* 609 */ if ((partyIndexTo < exped.getType().maxParty) && (partyIndexTo <= exped.getParties().size())) { /* 610 */ cid = slea.readInt(); /* 611 */ for (i$ = exped.getParties().iterator(); i$.hasNext();) { int i = ((Integer) i$.next()).intValue(); /* 612 */ MapleParty par = World.Party.getParty(i); /* 613 */ if (par != null) { /* 614 */ MaplePartyCharacter expelled = par.getMemberById(cid); /* 615 */ if ((expelled != null) && (expelled.isOnline())) { /* 616 */ MapleCharacter chr = World.getStorage(expelled.getChannel()).getCharacterById(expelled.getId()); /* 617 */ if (chr == null) { /* */ break; /* */ } /* 620 */ if (partyIndexTo < exped.getParties().size()) { /* 621 */ MapleParty party = World.Party.getParty(((Integer) exped.getParties().get(partyIndexTo)).intValue()); /* 622 */ if ((party == null) || (party.getMembers().size() >= 6)) { /* 623 */ c.getPlayer().dropMessage(5, "Invalid party."); /* 624 */ break; /* */ } /* */ } /* 627 */ if (GameConstants.isDojo(c.getPlayer().getMapId())) { /* 628 */ Event_DojoAgent.failed(c.getPlayer()); /* */ } /* 630 */ World.Party.updateParty(i, PartyOperation.EXPEL, expelled); /* 631 */ if (partyIndexTo < exped.getParties().size()) { /* 632 */ MapleParty party = World.Party.getParty(((Integer) exped.getParties().get(partyIndexTo)).intValue()); /* 633 */ if ((party != null) && (party.getMembers().size() < 6)) { /* 634 */ World.Party.updateParty(party.getId(), PartyOperation.JOIN, expelled); /* 635 */ chr.receivePartyMemberHP(); /* 636 */ chr.updatePartyMemberHP(); /* 637 */ chr.getClient().getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(exped, true, false)); /* */ } /* */ } else { /* 640 */ MapleParty party = World.Party.createPartyAndAdd(expelled, exped.getId()); /* 641 */ chr.setParty(party); /* 642 */ chr.getClient().getSession().write(CWvsContext.PartyPacket.partyCreated(party.getId())); /* 643 */ chr.getClient().getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(exped, true, false)); /* 644 */ World.Party.expedPacket(exped.getId(), CWvsContext.ExpeditionPacket.expeditionUpdate(exped.getIndex(party.getId()), party), null); /* */ } /* 646 */ if ((c.getPlayer().getEventInstance() != null) && /* 647 */ (expelled.isOnline())) { /* 648 */ c.getPlayer().getEventInstance().disbandParty(); /* */ } /* */ /* 651 */ if (c.getPlayer().getPyramidSubway() == null) { break; } /* 652 */ c.getPlayer().getPyramidSubway().fail(c.getPlayer()); break; /* */ } /* */ } /* */ } /* */ } /* */ /* */ } /* */ /* 660 */ break; /* */ default: /* 663 */ if (!c.getPlayer().isGM()) { break; } /* 664 */ System.out.println("Unknown Expedition : " + mode + "\n" + slea); /* */ } /* */ } }