Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. private static void exchange(GrandExchangeOffer seller, GrandExchangeOffer buyer) {
  2. if (buyer.isSell() == seller.isSell()) {
  3. return;
  4. }
  5. if ((seller.isSell() && buyer.getOfferedValue() < seller.getOfferedValue()) || (!seller.isSell() && buyer.getOfferedValue() > seller.getOfferedValue())) {
  6. return;
  7. }
  8. int amount = seller.getAmountLeft(true);
  9. if (amount > buyer.getAmountLeft(true)) {
  10. amount = buyer.getAmountLeft(true);
  11. }
  12. if (amount < 1) {
  13. return;
  14. }
  15. int coinDifference = seller.isSell() ? (buyer.getOfferedValue() - seller.getOfferedValue()) : (seller.getOfferedValue() - buyer.getOfferedValue());
  16. if (coinDifference < 0) {
  17. return;
  18. }
  19. if (EconomyManagement.getEcoState() == EcoStatus.DRAINING) {
  20. coinDifference *= (1.0 - EconomyManagement.getModificationRate());
  21. }
  22. seller.setCompletedAmount(seller.getCompletedAmount() + amount);
  23. buyer.setCompletedAmount(buyer.getCompletedAmount() + amount);
  24. seller.setState(seller.getAmountLeft() < 1 ? OfferState.COMPLETED : OfferState.UPDATED);
  25. buyer.setState(buyer.getAmountLeft() < 1 ? OfferState.COMPLETED : OfferState.UPDATED);
  26. if (seller.isSell()) {
  27. if (seller.getAmountLeft() < 1 && seller.getPlayer() != null) {
  28. seller.getPlayer().getAudioManager().send(new Audio(4042, 1, 1));
  29. }
  30. seller.addWithdraw(995, amount * seller.getOfferedValue());
  31. buyer.addWithdraw(buyer.getItemId(), amount);
  32. BuyingLimitation.updateBoughtAmount(buyer.getItemId(), buyer.getPlayerUID(), amount);
  33. } else {
  34. if (buyer.getAmountLeft() < 1 && buyer.getPlayer() != null) {
  35. buyer.getPlayer().getAudioManager().send(new Audio(4042, 1, 1));
  36. }
  37. seller.addWithdraw(seller.getItemId(), amount);
  38. buyer.addWithdraw(995, amount * buyer.getOfferedValue());
  39. BuyingLimitation.updateBoughtAmount(seller.getItemId(), seller.getPlayerUID(), amount);
  40. }
  41. if (coinDifference > 0) {
  42. addCoinDifference(seller, buyer, coinDifference, amount);
  43. }
  44. seller.getEntry().influenceValue(seller.getOfferedValue());
  45. seller.notify(UPDATE_NOTIFICATION);
  46. buyer.notify(UPDATE_NOTIFICATION);
  47.  
  48. // buyer.sendBuyResultMessage(seller, buyer);
  49. // seller.sendResultMessage(seller, buyer);
  50.  
  51. dumpDatabase = true;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement