Facebook
From coremax, 5 Years ago, written in Java.
Embed
Download Paste or View Raw
Hits: 183
  1.   package net.riixo.wcore.managers;
  2.  
  3. import net.riixo.wcore.basic.*;
  4. import net.riixo.wcore.objects.*;
  5. import java.util.*;
  6. import org.bukkit.entity.*;
  7. import org.bukkit.inventory.*;
  8.  
  9. public class TradeManager
  10. {
  11.     public Main plugin;
  12.     private ArrayList<Trade> tradeList;
  13.    
  14.     public TradeManager(final Main instance) {
  15.         this.tradeList = new ArrayList<Trade>();
  16.         this.plugin = instance;
  17.     }
  18.    
  19.     public ArrayList<Trade> getAllTrades() {
  20.         return this.tradeList;
  21.     }
  22.    
  23.     public void removeTrade(final Trade trade) {
  24.         final ArrayList<Trade> trades = new ArrayList<Trade>();
  25.         for (final Trade t : this.tradeList) {
  26.             if (!t.getRequester().getName().equalsIgnoreCase(trade.getRequester().getName()) || !t.getAccepter().getName().equalsIgnoreCase(trade.getAccepter().getName())) {
  27.                 trades.add(t);
  28.             }
  29.         }
  30.         this.tradeList = trades;
  31.     }
  32.    
  33.     public void addTrade(final Trade trade) {
  34.         this.removeTrade(trade);
  35.         this.tradeList.add(trade);
  36.     }
  37.    
  38.     public Trade getTradeFromRequester(final Player requester) {
  39.         Trade trade = null;
  40.         for (final Trade t : this.tradeList) {
  41.             if (t.getRequester().getName().equalsIgnoreCase(requester.getName())) {
  42.                 trade = t;
  43.             }
  44.         }
  45.         return trade;
  46.     }
  47.    
  48.     public Trade getTradeFromAccepter(final Player accepter) {
  49.         Trade trade = null;
  50.         for (final Trade t : this.tradeList) {
  51.             if (t.getAccepter().getName().equalsIgnoreCase(accepter.getName())) {
  52.                 trade = t;
  53.             }
  54.         }
  55.         return trade;
  56.     }
  57.    
  58.     public Inventory setItemsLeft(final Inventory inventory, final ItemStack[] itemsArray) {
  59.         final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
  60.         for (final ItemStack item : itemsArray) {
  61.             items.add(item);
  62.         }
  63.         int slot = 0;
  64.         while (items.size() > 0) {
  65.             if (slot != 3 && slot != 12 && slot != 21 && slot != 30) {
  66.                 inventory.setItem(slot, (ItemStack)items.get(0));
  67.                 items.remove(items.get(0));
  68.                 ++slot;
  69.             }
  70.             else {
  71.                 inventory.setItem(slot, (ItemStack)items.get(0));
  72.                 items.remove(items.get(0));
  73.                 slot += 6;
  74.             }
  75.         }
  76.         return inventory;
  77.     }
  78.    
  79.     public Inventory setItemsRight(final Inventory inventory, final ItemStack[] itemsArray) {
  80.         final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
  81.         for (final ItemStack item : itemsArray) {
  82.             items.add(item);
  83.         }
  84.         int slot = 5;
  85.         while (items.size() > 0) {
  86.             if (slot != 8 && slot != 17 && slot != 26 && slot != 35) {
  87.                 inventory.setItem(slot, (ItemStack)items.get(0));
  88.                 items.remove(items.get(0));
  89.                 ++slot;
  90.             }
  91.             else {
  92.                 inventory.setItem(slot, (ItemStack)items.get(0));
  93.                 items.remove(items.get(0));
  94.                 slot += 6;
  95.             }
  96.         }
  97.         return inventory;
  98.     }
  99.    
  100.     public ItemStack[] getItemsRequester(final Player p) {
  101.         final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
  102.         if (this.getTradeFromRequester(p) != null) {
  103.             final Trade trade = this.getTradeFromRequester(p);
  104.             if (trade.hasTradeWindowOpen(p)) {
  105.                 final Inventory inv = p.getOpenInventory().getTopInventory();
  106.                 for (int slot = 0; slot < 4; ++slot) {
  107.                     if (inv.getItem(slot) != null) {
  108.                         items.add(inv.getItem(slot));
  109.                     }
  110.                 }
  111.                 for (int slot = 9; slot < 13; ++slot) {
  112.                     if (inv.getItem(slot) != null) {
  113.                         items.add(inv.getItem(slot));
  114.                     }
  115.                 }
  116.                 for (int slot = 18; slot < 22; ++slot) {
  117.                     if (inv.getItem(slot) != null) {
  118.                         items.add(inv.getItem(slot));
  119.                     }
  120.                 }
  121.                 for (int slot = 27; slot < 31; ++slot) {
  122.                     if (inv.getItem(slot) != null) {
  123.                         items.add(inv.getItem(slot));
  124.                     }
  125.                 }
  126.             }
  127.         }
  128.         return items.toArray(new ItemStack[items.size()]);
  129.     }
  130.    
  131.     public ItemStack[] getItemsAccepter(final Player p) {
  132.         final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
  133.         if (this.getTradeFromAccepter(p) != null) {
  134.             final Trade trade = this.getTradeFromAccepter(p);
  135.             if (trade.hasTradeWindowOpen(p)) {
  136.                 final Inventory inv = p.getOpenInventory().getTopInventory();
  137.                 for (int slot = 0; slot < 4; ++slot) {
  138.                     if (inv.getItem(slot) != null) {
  139.                         items.add(inv.getItem(slot));
  140.                     }
  141.                 }
  142.                 for (int slot = 9; slot < 13; ++slot) {
  143.                     if (inv.getItem(slot) != null) {
  144.                         items.add(inv.getItem(slot));
  145.                     }
  146.                 }
  147.                 for (int slot = 18; slot < 22; ++slot) {
  148.                     if (inv.getItem(slot) != null) {
  149.                         items.add(inv.getItem(slot));
  150.                     }
  151.                 }
  152.                 for (int slot = 27; slot < 31; ++slot) {
  153.                     if (inv.getItem(slot) != null) {
  154.                         items.add(inv.getItem(slot));
  155.                     }
  156.                 }
  157.             }
  158.         }
  159.         return items.toArray(new ItemStack[items.size()]);
  160.     }
  161. }
  162.