/Trunk/src/net/sf/odinms/net/channel/handler/UseChairHandler.java

https://github.com/system32/NinjaMS · Java · 44 lines · 38 code · 6 blank · 0 comment · 4 complexity · 4fe74f464f4e9ed40d5b9a69398ef671 MD5 · raw file

  1. package net.sf.odinms.net.channel.handler;
  2. import net.sf.odinms.client.Clones;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import net.sf.odinms.client.MapleClient;
  6. import net.sf.odinms.client.Inventory.MapleInventoryType;
  7. import net.sf.odinms.client.anticheat.CheatingOffense;
  8. import net.sf.odinms.net.AbstractMaplePacketHandler;
  9. import net.sf.odinms.server.TimerManager;
  10. import net.sf.odinms.tools.MaplePacketCreator;
  11. import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
  12. public class UseChairHandler extends AbstractMaplePacketHandler {
  13. private static Logger log = LoggerFactory.getLogger(UseItemHandler.class);
  14. public UseChairHandler() {
  15. }
  16. public void handlePacket(SeekableLittleEndianAccessor slea, final MapleClient c) {
  17. final int itemId = slea.readInt();
  18. if (c.getPlayer().getInventory(MapleInventoryType.SETUP).findById(itemId) == null) {
  19. c.getPlayer().getCheatTracker().registerOffense(CheatingOffense.USING_UNAVAILABLE_ITEM, Integer.toString(itemId));
  20. return;
  21. }
  22. c.getPlayer().setChair(itemId);
  23. c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showChair(c.getPlayer().getId(), itemId), false);
  24. c.getSession().write(MaplePacketCreator.enableActions());
  25. if (c.getPlayer().hasClones()) {
  26. int i = 1;
  27. for (final Clones clone : c.getPlayer().getClones()) {
  28. TimerManager.getInstance().schedule(new Runnable() {
  29. @Override
  30. public void run() {
  31. c.getPlayer().getMap().broadcastMessage(clone.getClone(), MaplePacketCreator.showChair(clone.getClone().getId(), itemId), false);
  32. }
  33. }, i * 250);
  34. i++;
  35. }
  36. }
  37. }
  38. }