RequestExCubeGameChangeTeam.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (C) 2004-2015 L2J Server
  3. *
  4. * This file is part of L2J Server.
  5. *
  6. * L2J Server is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * L2J Server is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. package com.l2jserver.gameserver.network.clientpackets;
  20. import com.l2jserver.gameserver.instancemanager.HandysBlockCheckerManager;
  21. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  22. /**
  23. * Format: chdd d: Arena d: Team
  24. * @author mrTJO
  25. */
  26. public final class RequestExCubeGameChangeTeam extends L2GameClientPacket
  27. {
  28. private static final String _C__D0_5A_REQUESTEXCUBEGAMECHANGETEAM = "[C] D0:5A RequestExCubeGameChangeTeam";
  29. private int _arena;
  30. private int _team;
  31. @Override
  32. protected void readImpl()
  33. {
  34. // client sends -1,0,1,2 for arena parameter
  35. _arena = readD() + 1;
  36. _team = readD();
  37. }
  38. @Override
  39. public void runImpl()
  40. {
  41. // do not remove players after start
  42. if (HandysBlockCheckerManager.getInstance().arenaIsBeingUsed(_arena))
  43. {
  44. return;
  45. }
  46. L2PcInstance player = getClient().getActiveChar();
  47. switch (_team)
  48. {
  49. case 0:
  50. case 1:
  51. // Change Player Team
  52. HandysBlockCheckerManager.getInstance().changePlayerToTeam(player, _arena, _team);
  53. break;
  54. case -1:
  55. // Remove Player (me)
  56. {
  57. int team = HandysBlockCheckerManager.getInstance().getHolder(_arena).getPlayerTeam(player);
  58. // client sends two times this packet if click on exit
  59. // client did not send this packet on restart
  60. if (team > -1)
  61. {
  62. HandysBlockCheckerManager.getInstance().removePlayer(player, _arena, team);
  63. }
  64. break;
  65. }
  66. default:
  67. _log.warning("Wrong Cube Game Team ID: " + _team);
  68. break;
  69. }
  70. }
  71. @Override
  72. public String getType()
  73. {
  74. return _C__D0_5A_REQUESTEXCUBEGAMECHANGETEAM;
  75. }
  76. }