SHARE
TWEET

handlers.bypasshandlers.ItemAuctionLink

fforc9e Apr 28th, 2014 206 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * This program is free software: you can redistribute it and/or modify it under
  3.  * the terms of the GNU General Public License as published by the Free Software
  4.  * Foundation, either version 3 of the License, or (at your option) any later
  5.  * version.
  6.  *
  7.  * This program is distributed in the hope that it will be useful, but WITHOUT
  8.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9.  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10.  * details.
  11.  *
  12.  * You should have received a copy of the GNU General Public License along with
  13.  * this program. If not, see <http://www.gnu.org/licenses/>.
  14.  */
  15. package handlers.bypasshandlers;
  16.  
  17. import java.text.SimpleDateFormat;
  18. import java.util.Date;
  19. import java.util.StringTokenizer;
  20.  
  21. import com.l2jserver.Config;
  22. import com.l2jserver.gameserver.handler.IBypassHandler;
  23. import com.l2jserver.gameserver.instancemanager.ItemAuctionManager;
  24. import com.l2jserver.gameserver.model.actor.L2Character;
  25. import com.l2jserver.gameserver.model.actor.L2Npc;
  26. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  27. import com.l2jserver.gameserver.model.itemauction.ItemAuction;
  28. import com.l2jserver.gameserver.model.itemauction.ItemAuctionInstance;
  29. import com.l2jserver.gameserver.network.SystemMessageId;
  30. import com.l2jserver.gameserver.network.serverpackets.ExItemAuctionInfoPacket;
  31. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  32.  
  33. public class ItemAuctionLink implements IBypassHandler
  34. {
  35.         private static final SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss dd.MM.yyyy");
  36.        
  37.         private static final String[] COMMANDS =
  38.         {
  39.                 "ItemAuction"
  40.         };
  41.        
  42.         public boolean useBypass(String command, L2PcInstance activeChar, L2Character target)
  43.         {
  44.                 if (!(target instanceof L2Npc))
  45.                         return false;
  46.                
  47.                 if (!Config.ALT_ITEM_AUCTION_ENABLED)
  48.                 {
  49.                         activeChar.sendPacket(new SystemMessage(SystemMessageId.NO_AUCTION_PERIOD));
  50.                         return true;
  51.                 }
  52.                
  53.                 final ItemAuctionInstance au = ItemAuctionManager.getInstance().getManagerInstance(((L2Npc)target).getNpcId());
  54.                 if (au == null)
  55.                         return false;
  56.                
  57.                 try
  58.                 {
  59.                         StringTokenizer st = new StringTokenizer(command);
  60.                         st.nextToken(); // bypass "ItemAuction"
  61.                         if (!st.hasMoreTokens())
  62.                                 return false;
  63.                        
  64.                         String cmd = st.nextToken();
  65.                         if ("show".equalsIgnoreCase(cmd))
  66.                         {
  67.                                 if (!activeChar.getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
  68.                                         return false;
  69.                                
  70.                                 if (activeChar.isItemAuctionPolling())
  71.                                         return false;
  72.                                
  73.                                 final ItemAuction currentAuction = au.getCurrentAuction();
  74.                                 final ItemAuction nextAuction = au.getNextAuction();
  75.                                
  76.                                 if (currentAuction == null)
  77.                                 {
  78.                                         activeChar.sendPacket(new SystemMessage(SystemMessageId.NO_AUCTION_PERIOD));
  79.                                        
  80.                                         if (nextAuction != null) // used only once when database is empty
  81.                                                 activeChar.sendMessage("The next auction will begin on the " + fmt.format(new Date(nextAuction.getStartingTime())) + ".");
  82.                                         return true;
  83.                                 }
  84.                                
  85.                                 activeChar.sendPacket(new ExItemAuctionInfoPacket(false, currentAuction, nextAuction));
  86.                         }
  87.                         else if ("cancel".equalsIgnoreCase(cmd))
  88.                         {
  89.                                 final ItemAuction[] auctions = au.getAuctionsByBidder(activeChar.getObjectId());
  90.                                 boolean returned = false;
  91.                                 for (final ItemAuction auction : auctions)
  92.                                 {
  93.                                         if (auction.cancelBid(activeChar))
  94.                                                 returned = true;
  95.                                 }
  96.                                 if (!returned)
  97.                                         activeChar.sendPacket(new SystemMessage(SystemMessageId.NO_OFFERINGS_OWN_OR_MADE_BID_FOR));
  98.                         }
  99.                         else
  100.                                 return false;
  101.                 }
  102.                 catch (Exception e)
  103.                 {
  104.                         _log.severe("Exception in: " + getClass().getSimpleName() + ":" + e.getMessage());
  105.                 }
  106.                
  107.                 return true;
  108.         }
  109.        
  110.         public String[] getBypassList()
  111.         {
  112.                 return COMMANDS;
  113.         }
  114. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top