Class MapleTrade

java.lang.Object
server.MapleTrade

public class MapleTrade extends Object
玩家之間一對一道具與楓幣交易的執行時狀態機。

每個 MapleTrade 實例代表交易雙方其中一方的視角,持有:

  • 本方放入的 Item 清單與楓幣金額;
  • 對方已確認後複製過來的 exchangeItems / exchangeMeso
  • 交易槽位(tradingslot)與鎖定狀態(locked)。
靜態方法 completeTrade 在雙方皆鎖定後執行原子性道具轉移, 並透過 InteractionPacket 送出確認封包; cancelTrade 將道具退還原主並清除雙方交易狀態。 交易物件由 MapleCharacter.getTrade() 持有, 並由 PlayerInteractionHandler 封包處理器驅動。
  • Constructor Details

    • MapleTrade

      public MapleTrade(byte tradingslot, MapleCharacter chr)
  • Method Details

    • isAbonormalTradeStatus

      public static boolean isAbonormalTradeStatus(MapleTrade local, MapleTrade partner)
    • isCompleting

      public boolean isCompleting()
    • setCompleting

      public void setCompleting(boolean set)
    • isCanceling

      public boolean isCanceling()
    • setCanceling

      public void setCanceling(boolean set)
    • completeTrade

      public static final void completeTrade(MapleCharacter c)
    • cancelTrade

      public static final void cancelTrade(MapleTrade Localtrade, MapleClient c, MapleCharacter chr)
    • startTrade

      public static final void startTrade(MapleCharacter c)
    • inviteTrade

      public static final void inviteTrade(MapleCharacter c1, MapleCharacter c2)
    • visitTrade

      public static final void visitTrade(MapleCharacter c1, MapleCharacter c2)
    • declineTrade

      public static final void declineTrade(MapleCharacter c)
    • CompleteTrade

      public final void CompleteTrade()
    • cancel

      public final void cancel(MapleClient c, MapleCharacter chr)
    • cancel

      public final void cancel(MapleClient c, MapleCharacter chr, int unsuccessful)
    • isLocked

      public final boolean isLocked()
    • setMeso

      public final void setMeso(int meso)
    • addItem

      public final void addItem(Item item)
    • chat

      public final void chat(String message)
    • chatAuto

      public final void chatAuto(String message)
    • getPartner

      public final MapleTrade getPartner()
    • setPartner

      public final void setPartner(MapleTrade partner)
    • getChr

      public final MapleCharacter getChr()
    • getNextTargetSlot

      public final int getNextTargetSlot()
    • inTrade

      public boolean inTrade()
    • setItems

      public final boolean setItems(MapleClient c, Item item, byte targetSlot, int quantity)