Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 59.12 KB | None | 0 0
  1. package server.model.players.grandexchange;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.File;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileReader;
  8. import java.io.FileWriter;
  9. import java.io.IOException;
  10.  
  11. import server.Config;
  12. import server.Server;
  13. import server.model.items.Item;
  14. import server.model.players.Client;
  15. import server.model.players.Player;
  16. import server.model.players.PlayerSave;
  17. import server.task.Task;
  18. import server.util.Misc;
  19.  
  20. /**
  21. *
  22. * @author Alex(TheLife)
  23. */
  24.  
  25. public class GrandExchange {
  26.  
  27. /**
  28. * Static integers
  29. */
  30. public static int offers = 100000,
  31. totalOffers = 0;
  32.  
  33. /**
  34. * []Integers
  35. */
  36. public int Slots[] = new int[7];
  37. public int SlotType[] = new int[7];
  38.  
  39. /**
  40. * Integers
  41. */
  42.  
  43. public int selectedItemId = 0,
  44. selectedAmount = 0,
  45. selectedPrice = 0,
  46. selectedSlot = 0,
  47. itemRecieved = 0,
  48. itemAmountRecieved = 0,
  49. firstItemStacked,
  50. secondItemStacked;
  51.  
  52. /**
  53. * Static booleans
  54. */
  55. public static boolean loading = false;
  56.  
  57. /**
  58. * Booleans
  59. */
  60. public boolean toHigh = false,
  61. recievedMessage = false,
  62. stillSearching = false;
  63.  
  64. /**
  65. * Sellers
  66. */
  67. public static Sellers sellers[] = new Sellers[offers];
  68.  
  69. /**
  70. * Buyers
  71. */
  72. public static Buyers buyers[] = new Buyers[offers];
  73.  
  74. /**
  75. * Initializing Player c
  76. */
  77. private Client c;
  78.  
  79. /**
  80. * Setting c
  81. */
  82. public GrandExchange (Client c) {
  83. this.c = c;
  84. }
  85.  
  86. /**
  87. * Setting it for Server.java
  88. */
  89. public GrandExchange() {
  90.  
  91. }
  92.  
  93. /**
  94. * Send update to player
  95. */
  96. public void sendUniversal(String name) {
  97. for (int i = 0; i < Config.MAX_PLAYERS; i++) {
  98. if (Server.playerHandler.players[i] != null) {
  99. if (Server.playerHandler.players[i].playerName.equalsIgnoreCase(name)) {
  100. Client c2 = (Client) Server.playerHandler.players[i];
  101. if(c2.GE().recievedMessage != true) {
  102. c2.sendMessage("One or more of your Grand Exchange offers have been updated.");
  103. }
  104. c2.GE().recievedMessage = true;
  105. if(c2.interfaceId == 54700 || c2.interfaceId == 53700) {
  106. final Client c3 = c2;
  107. Server.getTaskScheduler().schedule(new Task() {
  108. @Override
  109. public void execute() {
  110. c3.GE().openCollect(c3.GE().selectedSlot, false);
  111. this.stop();
  112. }
  113. });
  114.  
  115. } else if(c2.interfaceId == 24500) {
  116. final Client c3 = c2;
  117. Server.getTaskScheduler().schedule(new Task() {
  118. @Override
  119. public void execute() {
  120. c3.GE().openGrandExchange(false);
  121. this.stop();
  122. }
  123. });
  124. } else {
  125. c2.GE().openGrandExchange(false);
  126. }
  127. }
  128. }
  129. }
  130. }
  131.  
  132. /**
  133. * Send if it has updated
  134. */
  135. public void sendUpdate(String name) {
  136. boolean rM = false;
  137. for(int i = 0; i < offers; i++) {
  138. if(sellers[i] != null && sellers[i].owner.equalsIgnoreCase(name)) {
  139. if(sellers[i].updated == true)
  140. rM = true;
  141. } else if(buyers[i] != null && buyers[i].owner.equalsIgnoreCase(name)) {
  142. if(buyers[i].updated == true)
  143. rM = true;
  144. }
  145. }
  146. if(rM == true) {
  147. c.sendMessage("You have items from the Grand Exchange waiting in your collection box.");
  148. }
  149. }
  150.  
  151. /**
  152. * Load Sellers
  153. */
  154. public void loadSellers() {
  155. BufferedReader File = null;
  156. boolean found = false;
  157. for(int i = 0; i < offers; i++) {
  158. found = false;
  159. try {
  160. File = new BufferedReader(new FileReader("./Data/GrandExchange/Sellers/"+i+".txt"));
  161. try {
  162. File.close();
  163. } catch(IOException o) {
  164.  
  165. }
  166. found = true;
  167. } catch(FileNotFoundException e) {
  168. found = false;
  169. continue;
  170. }
  171. if(found == true) {
  172. totalOffers++;
  173. Sellers s = new Sellers(i);
  174. sellers[i] = s;
  175. loadOffer(s.id, "Sell");
  176. }
  177. }
  178. }
  179.  
  180. /**
  181. * Load Buyers
  182. */
  183. public void loadBuyers() {
  184. BufferedReader File = null;
  185. boolean found = false;
  186. for(int i = 0; i < offers; i++) {
  187. found = false;
  188. try {
  189. File = new BufferedReader(new FileReader("./Data/GrandExchange/Buyers/"+i+".txt"));
  190. try {
  191. File.close();
  192. } catch(IOException o) {
  193.  
  194. }
  195. found = true;
  196. } catch(FileNotFoundException e) {
  197. found = false;
  198. continue;
  199. }
  200. if(found == true) {
  201. totalOffers++;
  202. Buyers b = new Buyers(i);
  203. buyers[i] = b;
  204. loadOffer(b.id, "Buy");
  205. }
  206. }
  207. }
  208.  
  209. /**
  210. * Makes a new offer
  211. */
  212.  
  213. public int newOffer(String type, int itemId, int amount, int updatedAmount, int price, int percentage, String owner, boolean completed, int slot) {
  214. if(loading == true) {
  215. return -1;
  216. }
  217. int id = -1;
  218. if(type == "Sell") {
  219. for (int a = 1; a < offers; a++) {
  220. if (sellers[a] == null) {
  221. id = a;
  222. break;
  223. }
  224. }
  225. if(id == -1) {
  226. c.sendMessage("To many offers, please try again later.");
  227. return id;
  228. }
  229. Sellers s = new Sellers(id);
  230. s.itemId = itemId;
  231. s.amount = amount;
  232. s.updatedAmount = updatedAmount;
  233. s.price = price;
  234. s.percentage = percentage;
  235. s.owner = owner;
  236. s.slot = slot;
  237. s.updated = false;
  238. Slots[slot] = id;
  239. SlotType[slot] = 1;
  240. sellers[id] = s;
  241. saveOffer(id, type);
  242. } else if(type == "Buy") {
  243. for (int a = 1; a < offers; a++) {
  244. if (buyers[a] == null) {
  245. id = a;
  246. break;
  247. }
  248. }
  249. if(id == -1) {
  250. c.sendMessage("To many offers, please try again later.");
  251. return id;
  252. }
  253. Buyers b = new Buyers(id);
  254. b.itemId = itemId;
  255. b.amount = amount;
  256. b.updatedAmount = updatedAmount;
  257. b.price = price;
  258. b.percentage = percentage;
  259. b.owner = owner;
  260. b.slot = slot;
  261. b.updated = false;
  262. Slots[slot] = id;
  263. SlotType[slot] = 2;
  264. buyers[id] = b;
  265. saveOffer(id, type);
  266. }
  267. return id;
  268. }
  269.  
  270. /**
  271. * Check for items
  272. */
  273. public int firstItemStacked(int itemId) {
  274. firstItemStacked = 0;
  275. if(Item.itemIsNote[itemId+1]) {
  276. itemId++;
  277. }
  278. for (int i = 0; i < c.playerItems.length; i++) {
  279. if (c.playerItems[i] == itemId+1)
  280. firstItemStacked = c.playerItemsN[i];
  281. }
  282. return itemId;
  283. }
  284.  
  285. public int secondItemStacked(int itemId) {
  286. secondItemStacked = 0;
  287. for (int i = 0; i < c.playerItems.length; i++) {
  288. if (c.playerItems[i] == itemId+1)
  289. secondItemStacked++;
  290. }
  291. return itemId;
  292. }
  293.  
  294. public boolean removeGrandExchangeItems(int selectedA, int firstItemId, int secondItemId, int firstItemA, int secondItemA, long total) {
  295. if(total < selectedA) {
  296. c.sendMessage("You don't have that many.");
  297. return false;
  298. }
  299. if(selectedA <= 0) {
  300. return false;
  301. }
  302. if(total <= 0) {
  303. return false;
  304. }
  305. if(selectedA >= secondItemA) {
  306. if (c.getItems().playerHasItem(secondItemId, secondItemA)) {
  307. c.getItems().deleteItem2(secondItemId, secondItemA);
  308. selectedA -= secondItemA;
  309. }
  310. }
  311. if(selectedA <= secondItemA) {
  312. if (c.getItems().playerHasItem(secondItemId, selectedA)) {
  313. c.getItems().deleteItem2(secondItemId, selectedA);
  314. selectedA = 0;
  315. }
  316. }
  317. if(selectedA >= firstItemA) {
  318. if (c.getItems().playerHasItem(firstItemId, firstItemA)) {
  319. c.getItems().deleteItem2(firstItemId, firstItemA);
  320. selectedA -= firstItemA;
  321. }
  322. }
  323. if(selectedA <= firstItemA) {
  324. if (c.getItems().playerHasItem(firstItemId, selectedA)) {
  325. c.getItems().deleteItem2(firstItemId, selectedA);
  326. selectedA = 0;
  327. }
  328. }
  329. if(selectedA > 0) {
  330. return false;
  331. }
  332. return true;
  333. }
  334.  
  335. /**
  336. * Sell items method
  337. */
  338. public void sellItems() {
  339. int x = selectedAmount;
  340. int y = firstItemStacked(selectedItemId);
  341. int z = secondItemStacked(selectedItemId);
  342.  
  343. long l = firstItemStacked;
  344. long g = secondItemStacked;
  345.  
  346. long o = l+g;
  347.  
  348. if(removeGrandExchangeItems(x, y, z, firstItemStacked, secondItemStacked, o)) {
  349. final int s = selectedSlot; int b = selectedSlot;
  350. int i = newOffer("Sell", selectedItemId, selectedAmount, selectedAmount, selectedPrice, 0, c.playerName, false, b);
  351. //c.getItems().deleteItem2(selectedItemId, selectedAmount);
  352. if(i == -1) {
  353. c.getItems().addItem(selectedItemId, selectedAmount);
  354. c.sendMessage("To many offers, please try again later.");
  355. return;
  356. }
  357. openGrandExchange(true);
  358. c.sendConfig(4, b, 1, -1);
  359. c.sendConfig(5, b, 1, -1);
  360. int k = b*2; k += 24565;
  361. c.getPA().sendFrame34(selectedItemId, 0, k, selectedAmount);
  362. sellItems(i, c.playerName);
  363. Server.getTaskScheduler().schedule(new Task(2) {
  364. @Override
  365. public void execute() {
  366. c.sendConfig(5, s, 3, -1);
  367. this.stop();
  368. }
  369. });
  370. PlayerSave.saveGame(c);
  371. }
  372. }
  373.  
  374. /**
  375. * Buy items method
  376. */
  377. public void buyItems() {
  378. if (c.getItems().playerHasItem(995, selectedAmount*selectedPrice)) {
  379. final int s = selectedSlot; int b = selectedSlot;
  380. c.getItems().deleteItem2(995, selectedAmount*selectedPrice);
  381. int i = newOffer("Buy", selectedItemId, selectedAmount, selectedAmount, selectedPrice, 0, c.playerName, false, b);
  382. if(i == -1) {
  383. c.getItems().addItem(selectedItemId, selectedAmount);
  384. c.sendMessage("To many offers, please try again later.");
  385. return;
  386. }
  387. openGrandExchange(true);
  388. c.sendConfig(4, b, 1, -1);
  389. c.sendConfig(5, b, 2, -1);
  390. int k = b*2; k += 24565;
  391. c.getPA().sendFrame34(selectedItemId, 0, k, selectedAmount);
  392. buyItems(i, c.playerName);
  393.  
  394. Server.getTaskScheduler().schedule(new Task(2) {
  395. @Override
  396. public void execute() {
  397. c.sendConfig(5, s, 4, -1);
  398. this.stop();
  399. }
  400. });
  401. PlayerSave.saveGame(c);
  402. } else {
  403. c.sendMessage("You don't have enough coins.");
  404. }
  405. }
  406.  
  407. /**
  408. * Part of item selling
  409. */
  410. public void sellItems(int s, String name) {
  411. for (int b = 1; b < offers; b++) {
  412. if (buyers[b] != null && sellers[s] != null) {
  413. if (buyers[b].itemId == sellers[s].itemId) {
  414. if(sellers[s].updatedAmount >= 1) {
  415. if(sellers[s].price <= buyers[b].price) {
  416. if (!sellers[s].completed && !buyers[b].completed) {
  417. if (!sellers[s].aborted && !buyers[b].aborted) {
  418. stillSearching = true;
  419. boolean done = false; done = false;
  420. if(done != true && sellers[s].updatedAmount > buyers[b].updatedAmount) {
  421. sellers[s].updatedAmount -= buyers[b].updatedAmount;
  422. sellers[s].percentage += buyers[b].updatedAmount;
  423. sellers[s].itemOneAmount += buyers[b].updatedAmount*sellers[s].price;
  424. sellers[s].itemOne = getMoneyStackId(sellers[s].itemOneAmount);
  425. sellers[s].total += buyers[b].updatedAmount;
  426. sellers[s].totalGp += buyers[b].updatedAmount*sellers[s].price;
  427. buyers[b].itemOne = buyers[b].itemId;
  428. buyers[b].itemOneAmount += buyers[b].updatedAmount;
  429. buyers[b].total += buyers[b].updatedAmount;
  430. buyers[b].totalGp += buyers[b].updatedAmount*sellers[s].price;
  431. int sa = buyers[b].updatedAmount*sellers[s].price;
  432. int ba = buyers[b].updatedAmount*buyers[b].price;
  433. buyers[b].itemTwoAmount += ba-sa;
  434. buyers[b].itemTwo = getMoneyStackId(buyers[b].itemTwoAmount);
  435. buyers[b].percentage = buyers[b].amount;
  436. buyers[b].updatedAmount = 0;
  437. buyers[b].completed = true;
  438. buyers[b].updated = true;
  439. sellers[s].updated = true;
  440. sendUniversal(sellers[s].owner);
  441. sendUniversal(buyers[b].owner);
  442. saveOffer(s, "Sell");
  443. saveOffer(b, "Buy");
  444. done = true;
  445. }
  446. if(done != true && sellers[s].updatedAmount == buyers[b].updatedAmount) {
  447. sellers[s].percentage = sellers[s].amount;
  448. buyers[b].percentage = buyers[b].amount;
  449. sellers[s].itemOneAmount += buyers[b].updatedAmount*sellers[s].price;
  450. sellers[s].itemOne = getMoneyStackId(sellers[s].itemOneAmount);
  451. buyers[b].itemOne = buyers[b].itemId;
  452. buyers[b].itemOneAmount += sellers[s].updatedAmount;
  453. sellers[s].total += buyers[b].updatedAmount;
  454. sellers[s].totalGp += buyers[b].updatedAmount*sellers[s].price;
  455. buyers[b].total += buyers[b].updatedAmount;
  456. buyers[b].totalGp += buyers[b].updatedAmount*sellers[s].price;
  457. int sa = sellers[s].updatedAmount*sellers[s].price;
  458. int ba = buyers[b].updatedAmount*buyers[b].price;
  459. buyers[b].itemTwoAmount += ba-sa;
  460. buyers[b].itemTwo = getMoneyStackId(buyers[b].itemTwoAmount);
  461. sellers[s].updatedAmount = 0;
  462. buyers[b].updatedAmount = 0;
  463. buyers[b].completed = true;
  464. sellers[s].completed = true;
  465. buyers[b].updated = true;
  466. sellers[s].updated = true;
  467. sendUniversal(sellers[s].owner);
  468. sendUniversal(buyers[b].owner);
  469. saveOffer(b, "Buy");
  470. saveOffer(s, "Sell");
  471. done = true;
  472. }
  473. if(done != true && buyers[b].updatedAmount > sellers[s].updatedAmount) {
  474. buyers[b].percentage += sellers[s].updatedAmount;
  475. sellers[s].percentage = sellers[s].amount;
  476. sellers[s].itemOneAmount += sellers[s].updatedAmount*sellers[s].price;
  477. sellers[s].itemOne = getMoneyStackId(sellers[s].itemOneAmount);
  478. buyers[b].itemOne = buyers[b].itemId;
  479. buyers[b].itemOneAmount += sellers[s].updatedAmount;
  480. int sa = buyers[b].price-sellers[s].price;
  481. int ba = sa*sellers[s].updatedAmount;
  482. buyers[b].itemTwoAmount += ba;
  483. buyers[b].itemTwo = getMoneyStackId(buyers[b].itemTwoAmount);
  484. sellers[s].total += buyers[b].updatedAmount;
  485. sellers[s].totalGp += buyers[b].updatedAmount*sellers[s].price;
  486. buyers[b].total += buyers[b].updatedAmount;
  487. buyers[b].totalGp += buyers[b].updatedAmount*sellers[s].price;
  488. buyers[b].updatedAmount -= sellers[s].updatedAmount;
  489. sellers[s].updatedAmount = 0;
  490. sellers[s].completed = true;
  491. buyers[b].updated = true;
  492. sellers[s].updated = true;
  493. sendUniversal(sellers[s].owner);
  494. sendUniversal(buyers[b].owner);
  495. saveOffer(b, "Buy");
  496. saveOffer(s, "Sell");
  497. done = true;
  498. }
  499. stillSearching = false;
  500. }
  501. }
  502. }
  503. }
  504. }
  505. }
  506. }
  507. }
  508.  
  509. /**
  510. * Part of item buying
  511. */
  512. public void buyItems(int b, String name) {
  513. for (int s = 1; s < offers; s++) {
  514. if (sellers[s] != null && buyers[b] != null) {
  515. if (sellers[s].itemId == buyers[b].itemId) {
  516. if(buyers[b].updatedAmount >= 1) {
  517. if(buyers[b].price >= sellers[s].price) {
  518. if (!sellers[s].completed && !buyers[b].completed) {
  519. if (!sellers[s].aborted && !buyers[b].aborted) {
  520. stillSearching = true;
  521. boolean done = false; done = false;
  522. if(done != true && buyers[b].updatedAmount > sellers[s].updatedAmount) {
  523. buyers[b].percentage += sellers[s].updatedAmount;
  524. sellers[s].percentage = sellers[s].amount;
  525. buyers[b].updatedAmount -= sellers[s].updatedAmount;
  526. sellers[s].itemOneAmount += sellers[s].updatedAmount*sellers[s].price;
  527. sellers[s].itemOne = getMoneyStackId(sellers[s].itemOneAmount);
  528. buyers[b].itemOne = buyers[b].itemId;
  529. buyers[b].itemOneAmount += sellers[s].updatedAmount;
  530. int sa = buyers[b].price-sellers[s].price;
  531. int ba = sa*sellers[s].updatedAmount;
  532. buyers[b].itemTwoAmount += ba;
  533. buyers[b].itemTwo = getMoneyStackId(buyers[b].itemTwoAmount);
  534. sellers[s].total += sellers[s].updatedAmount;
  535. sellers[s].totalGp += sellers[s].updatedAmount*sellers[s].price;
  536. buyers[b].total += sellers[s].updatedAmount;
  537. buyers[b].totalGp += sellers[s].updatedAmount*sellers[s].price;
  538. sellers[s].updatedAmount = 0;
  539. sellers[s].completed = true;
  540. buyers[b].updated = true;
  541. sellers[s].updated = true;
  542. sendUniversal(sellers[s].owner);
  543. sendUniversal(buyers[b].owner);
  544. saveOffer(s, "Sell");
  545. saveOffer(b, "Buy");
  546. done = true;
  547. }
  548. if(done != true && buyers[b].updatedAmount == sellers[s].updatedAmount) {
  549. sellers[s].percentage = sellers[s].amount;
  550. buyers[b].percentage = buyers[b].amount;
  551. sellers[s].itemOneAmount += buyers[b].updatedAmount*sellers[s].price;
  552. sellers[s].itemOne = getMoneyStackId(sellers[s].itemOneAmount);
  553. buyers[b].itemOne = buyers[b].itemId;
  554. buyers[b].itemOneAmount += sellers[s].updatedAmount;
  555. int sa = sellers[s].updatedAmount*sellers[s].price;
  556. int ba = buyers[b].updatedAmount*buyers[b].price;
  557. buyers[b].itemTwoAmount += ba-sa;
  558. buyers[b].itemTwo = getMoneyStackId(buyers[b].itemTwoAmount);
  559. sellers[s].total += buyers[b].updatedAmount;
  560. sellers[s].totalGp += buyers[b].updatedAmount*sellers[s].price;
  561. buyers[b].total += buyers[b].updatedAmount;
  562. sellers[s].totalGp += buyers[b].updatedAmount*sellers[s].price;
  563. buyers[b].updatedAmount = 0;
  564. sellers[s].updatedAmount = 0;
  565. buyers[b].completed = true;
  566. sellers[s].completed = true;
  567. buyers[b].updated = true;
  568. sellers[s].updated = true;
  569. sendUniversal(sellers[s].owner);
  570. sendUniversal(buyers[b].owner);
  571. saveOffer(b, "Buy");
  572. saveOffer(s, "Sell");
  573. done = true;
  574. }
  575. if(done != true && sellers[s].updatedAmount > buyers[b].updatedAmount) {
  576. sellers[s].percentage += buyers[b].updatedAmount;
  577. buyers[b].percentage = buyers[b].amount;
  578. sellers[s].itemOneAmount += buyers[b].updatedAmount*sellers[s].price;
  579. sellers[s].itemOne = getMoneyStackId(sellers[s].itemOneAmount);
  580. buyers[b].itemOne = buyers[b].itemId;
  581. buyers[b].itemOneAmount += buyers[b].updatedAmount;
  582. int sa = buyers[b].updatedAmount*sellers[s].price;
  583. int ba = buyers[b].updatedAmount*buyers[b].price;
  584. buyers[b].itemTwoAmount += ba-sa;
  585. buyers[b].itemTwo = getMoneyStackId(buyers[b].itemTwoAmount);
  586. sellers[s].total += buyers[b].updatedAmount;
  587. sellers[s].totalGp += buyers[b].updatedAmount*sellers[s].price;
  588. buyers[b].total += buyers[b].updatedAmount;
  589. buyers[b].totalGp += buyers[b].updatedAmount*sellers[s].price;
  590. sellers[s].updatedAmount -= buyers[b].updatedAmount;
  591. buyers[b].updatedAmount = 0;
  592. buyers[b].completed = true;
  593. buyers[b].updated = true;
  594. sellers[s].updated = true;
  595. sendUniversal(sellers[s].owner);
  596. sendUniversal(buyers[b].owner);
  597. saveOffer(b, "Buy");
  598. saveOffer(s, "Sell");
  599. done = true;
  600. }
  601. stillSearching = false;
  602. }
  603. }
  604. }
  605. }
  606. }
  607. }
  608. }
  609. }
  610.  
  611. /**
  612. * Gets the item id of the money stack
  613. */
  614. public int getMoneyStackId(int amount) {
  615. if(amount == 1) {
  616. return 995;
  617. } else if(amount == 2) {
  618. return 996;
  619. } else if(amount == 3) {
  620. return 997;
  621. } else if(amount == 4) {
  622. return 998;
  623. } else if(amount >= 5 && amount <= 24) {
  624. return 999;
  625. } else if(amount >= 25 && amount <= 99) {
  626. return 1000;
  627. } else if(amount >= 100 && amount <= 249) {
  628. return 1001;
  629. } else if(amount >= 250 && amount <= 999) {
  630. return 1002;
  631. } else if(amount >= 1000 && amount <= 9999) {
  632. return 1003;
  633. } else if(amount >= 10000) {
  634. return 1004;
  635. }
  636. return 995;
  637. }
  638. /**
  639. * M or K
  640. */
  641. private static String intToKOrMil(int j) {
  642. if(j < 0x186a0)
  643. return String.valueOf(j);
  644. if(j < 0x989680)
  645. return j / 1000 + "K";
  646. else
  647. return j / 0xf4240 + "M";
  648. }
  649.  
  650. /**
  651. * Save offers
  652. */
  653. public void saveOffer(int id, String type) {
  654. BufferedWriter grandExchange = null;
  655. BufferedReader File = null;
  656. BufferedWriter fileW = null;
  657. if(type == "Sell") {
  658. try {
  659. try {
  660. File = new BufferedReader(new FileReader("./Data/GrandExchange/Sellers/"+id+".txt"));
  661. try {
  662. File.close();
  663. } catch(IOException o) {
  664.  
  665. }
  666. } catch(FileNotFoundException e) {
  667. try {
  668. fileW = new BufferedWriter(new FileWriter("./Data/GrandExchange/Sellers/"+id+".txt"));
  669. try {
  670. fileW.close();
  671. } catch(IOException o) {
  672.  
  673. }
  674. } catch(IOException a) {
  675.  
  676. }
  677. }
  678. grandExchange = new BufferedWriter(new FileWriter("./Data/GrandExchange/Sellers/"+id+".txt"));
  679. grandExchange.write(Integer.toString(sellers[id].itemId), 0, Integer.toString(sellers[id].itemId).length());
  680. grandExchange.newLine();
  681. grandExchange.write(Integer.toString(sellers[id].amount), 0, Integer.toString(sellers[id].amount).length());
  682. grandExchange.newLine();
  683. grandExchange.write(Integer.toString(sellers[id].updatedAmount), 0, Integer.toString(sellers[id].updatedAmount).length());
  684. grandExchange.newLine();
  685. grandExchange.write(Integer.toString(sellers[id].price), 0, Integer.toString(sellers[id].price).length());
  686. grandExchange.newLine();
  687. grandExchange.write(Integer.toString(sellers[id].percentage), 0, Integer.toString(sellers[id].percentage).length());
  688. grandExchange.newLine();
  689. grandExchange.write(sellers[id].owner, 0, sellers[id].owner.length());
  690. grandExchange.newLine();
  691. if(sellers[id].completed == true) {
  692. grandExchange.write("1", 0, 1);
  693. } else {
  694. grandExchange.write("0", 0, 1);
  695. }
  696. grandExchange.newLine();
  697. grandExchange.write(Integer.toString(sellers[id].slot), 0, Integer.toString(sellers[id].slot).length());
  698. grandExchange.newLine();
  699. if(sellers[id].updated == true) {
  700. grandExchange.write("1", 0, 1);
  701. } else {
  702. grandExchange.write("0", 0, 1);
  703. }
  704. grandExchange.newLine();
  705. grandExchange.write(Integer.toString(sellers[id].itemOne), 0, Integer.toString(sellers[id].itemOne).length());
  706. grandExchange.newLine();
  707. grandExchange.write(Integer.toString(sellers[id].itemTwo), 0, Integer.toString(sellers[id].itemTwo).length());
  708. grandExchange.newLine();
  709. grandExchange.write(Integer.toString(sellers[id].itemOneAmount), 0, Integer.toString(sellers[id].itemOneAmount).length());
  710. grandExchange.newLine();
  711. grandExchange.write(Integer.toString(sellers[id].itemTwoAmount), 0, Integer.toString(sellers[id].itemTwoAmount).length());
  712. grandExchange.newLine();
  713. if(sellers[id].aborted == true) {
  714. grandExchange.write("1", 0, 1);
  715. } else {
  716. grandExchange.write("0", 0, 1);
  717. }
  718. grandExchange.newLine();
  719. grandExchange.write(Integer.toString(sellers[id].total), 0, Integer.toString(sellers[id].total).length());
  720. grandExchange.newLine();
  721. grandExchange.write(Integer.toString(sellers[id].totalGp), 0, Integer.toString(sellers[id].totalGp).length());
  722. grandExchange.close();
  723. } catch (IOException ioexception) {
  724. }
  725. } else if(type == "Buy") {
  726. try {
  727. try {
  728. File = new BufferedReader(new FileReader("./Data/GrandExchange/Buyers/"+id+".txt"));
  729. try {
  730. File.close();
  731. } catch(IOException o) {
  732.  
  733. }
  734. } catch(FileNotFoundException e) {
  735. try {
  736. fileW = new BufferedWriter(new FileWriter("./Data/GrandExchange/Buyers/"+id+".txt"));
  737. try {
  738. fileW.close();
  739. } catch(IOException o) {
  740.  
  741. }
  742. } catch(IOException a) {
  743.  
  744. }
  745. }
  746. grandExchange = new BufferedWriter(new FileWriter("./Data/GrandExchange/Buyers/"+id+".txt"));
  747. grandExchange.write(Integer.toString(buyers[id].itemId), 0, Integer.toString(buyers[id].itemId).length());
  748. grandExchange.newLine();
  749. grandExchange.write(Integer.toString(buyers[id].amount), 0, Integer.toString(buyers[id].amount).length());
  750. grandExchange.newLine();
  751. grandExchange.write(Integer.toString(buyers[id].updatedAmount), 0, Integer.toString(buyers[id].updatedAmount).length());
  752. grandExchange.newLine();
  753. grandExchange.write(Integer.toString(buyers[id].price), 0, Integer.toString(buyers[id].price).length());
  754. grandExchange.newLine();
  755. grandExchange.write(Integer.toString(buyers[id].percentage), 0, Integer.toString(buyers[id].percentage).length());
  756. grandExchange.newLine();
  757. grandExchange.write(buyers[id].owner, 0, buyers[id].owner.length());
  758. grandExchange.newLine();
  759. if(buyers[id].completed == true) {
  760. grandExchange.write("1", 0, 1);
  761. } else {
  762. grandExchange.write("0", 0, 1);
  763. }
  764. grandExchange.newLine();
  765. grandExchange.write(Integer.toString(buyers[id].slot), 0, Integer.toString(buyers[id].slot).length());
  766. grandExchange.newLine();
  767. if(buyers[id].updated == true) {
  768. grandExchange.write("1", 0, 1);
  769. } else {
  770. grandExchange.write("0", 0, 1);
  771. }
  772. grandExchange.newLine();
  773. grandExchange.write(Integer.toString(buyers[id].itemOne), 0, Integer.toString(buyers[id].itemOne).length());
  774. grandExchange.newLine();
  775. grandExchange.write(Integer.toString(buyers[id].itemTwo), 0, Integer.toString(buyers[id].itemTwo).length());
  776. grandExchange.newLine();
  777. grandExchange.write(Integer.toString(buyers[id].itemOneAmount), 0, Integer.toString(buyers[id].itemOneAmount).length());
  778. grandExchange.newLine();
  779. grandExchange.write(Integer.toString(buyers[id].itemTwoAmount), 0, Integer.toString(buyers[id].itemTwoAmount).length());
  780. grandExchange.newLine();
  781. if(buyers[id].aborted == true) {
  782. grandExchange.write("1", 0, 1);
  783. } else {
  784. grandExchange.write("0", 0, 1);
  785. }
  786. grandExchange.newLine();
  787. grandExchange.write(Integer.toString(buyers[id].total), 0, Integer.toString(buyers[id].total).length());
  788. grandExchange.newLine();
  789. grandExchange.write(Integer.toString(buyers[id].totalGp), 0, Integer.toString(buyers[id].totalGp).length());
  790. grandExchange.close();
  791. } catch (IOException ioexception) {
  792. }
  793.  
  794. }
  795. }
  796.  
  797. /**
  798. * Load offer
  799. */
  800. public void loadOffer(int id, String type) {
  801. String s = "";
  802. int i = 1;
  803. try {
  804. BufferedReader bufferedreader = null;
  805. if(type == "Sell") {
  806. bufferedreader = new BufferedReader(new FileReader(
  807. "./Data/GrandExchange/Sellers/"+id+".txt"));
  808. } else {
  809. bufferedreader = new BufferedReader(new FileReader(
  810. "./Data/GrandExchange/Buyers/"+id+".txt"));
  811. }
  812. for (String s1 = bufferedreader.readLine(); s1 != null; s1 = bufferedreader
  813. .readLine()) {
  814. s1 = s1.trim();
  815. if(type == "Sell") {
  816. if(i == 1) {
  817. sellers[id].itemId = Integer.parseInt(s1);
  818. } else if(i == 2) {
  819. sellers[id].amount = Integer.parseInt(s1);
  820. } else if(i == 3) {
  821. sellers[id].updatedAmount = Integer.parseInt(s1);
  822. } else if(i == 4) {
  823. sellers[id].price = Integer.parseInt(s1);
  824. } else if(i == 5) {
  825. sellers[id].percentage = Integer.parseInt(s1);
  826. } else if(i == 6) {
  827. sellers[id].owner = s1;
  828. } else if(i == 7) {
  829. int bol = Integer.parseInt(s1);
  830. if(bol == 1)
  831. sellers[id].completed = true;
  832. else
  833. sellers[id].completed = false;
  834. } else if(i == 8) {
  835. sellers[id].slot = Integer.parseInt(s1);
  836. } else if(i == 9) {
  837. int bol = Integer.parseInt(s1);
  838. if(bol == 1)
  839. sellers[id].updated = true;
  840. else
  841. sellers[id].updated = false;
  842. } else if(i == 10) {
  843. sellers[id].itemOne = Integer.parseInt(s1);
  844. } else if(i == 11) {
  845. sellers[id].itemTwo = Integer.parseInt(s1);
  846. } else if(i == 12) {
  847. sellers[id].itemOneAmount = Integer.parseInt(s1);
  848. } else if(i == 13) {
  849. sellers[id].itemTwoAmount = Integer.parseInt(s1);
  850. } else if(i == 14) {
  851. int bol = Integer.parseInt(s1);
  852. if(bol == 1)
  853. sellers[id].aborted = true;
  854. else
  855. sellers[id].aborted = false;
  856. } else if(i == 15) {
  857. sellers[id].total = Integer.parseInt(s1);
  858. } else if(i == 16) {
  859. sellers[id].totalGp = Integer.parseInt(s1);
  860. }
  861. } else {
  862. if(i == 1) {
  863. buyers[id].itemId = Integer.parseInt(s1);
  864. } else if(i == 2) {
  865. buyers[id].amount = Integer.parseInt(s1);
  866. } else if(i == 3) {
  867. buyers[id].updatedAmount = Integer.parseInt(s1);
  868. } else if(i == 4) {
  869. buyers[id].price = Integer.parseInt(s1);
  870. } else if(i == 5) {
  871. buyers[id].percentage = Integer.parseInt(s1);
  872. } else if(i == 6) {
  873. buyers[id].owner = s1;
  874. } else if(i == 7) {
  875. int bol = Integer.parseInt(s1);
  876. if(bol == 1)
  877. buyers[id].completed = true;
  878. else
  879. buyers[id].completed = false;
  880. } else if(i == 8) {
  881. buyers[id].slot = Integer.parseInt(s1);
  882. } else if(i == 9) {
  883. int bol = Integer.parseInt(s1);
  884. if(bol == 1)
  885. buyers[id].updated = true;
  886. else
  887. buyers[id].updated = false;
  888. } else if(i == 10) {
  889. buyers[id].itemOne = Integer.parseInt(s1);
  890. } else if(i == 11) {
  891. buyers[id].itemTwo = Integer.parseInt(s1);
  892. } else if(i == 12) {
  893. buyers[id].itemOneAmount = Integer.parseInt(s1);
  894. } else if(i == 13) {
  895. buyers[id].itemTwoAmount = Integer.parseInt(s1);
  896. } else if(i == 14) {
  897. int bol = Integer.parseInt(s1);
  898. if(bol == 1)
  899. buyers[id].aborted = true;
  900. else
  901. buyers[id].aborted = false;
  902. } else if(i == 15) {
  903. buyers[id].total = Integer.parseInt(s1);
  904. } else if(i == 16) {
  905. buyers[id].totalGp = Integer.parseInt(s1);
  906. }
  907. }
  908. i++;
  909. }
  910.  
  911. bufferedreader.close();
  912. } catch (Exception exception) {
  913. exception.printStackTrace();
  914. }
  915. }
  916.  
  917. /**
  918. * Updates percentage bar
  919. */
  920. public void updateBar(String color, String type, int i, int slot, Player c2) {
  921. if(color == "Red") {
  922. c2.sendConfig(3, slot, 1, -1);
  923. c2.sendConfig(2, slot, 100, -1);
  924. }
  925. if(color == "Green") {
  926. double p; int col;
  927. if(type == "Sell" && sellers[i] != null) {
  928. p = ((double)sellers[i].percentage / sellers[i].amount) * 100;
  929. col = (int)p;
  930. c2.sendConfig(3, slot, 2, -1);
  931. c2.sendConfig(1, slot, 2, -1);
  932. c2.sendConfig(2, slot, col, -1);
  933. } else if(type == "Buy" && buyers[i] != null) {
  934. p = ((double)buyers[i].percentage / buyers[i].amount) * 100;
  935. col = (int)p;
  936. c2.sendConfig(3, slot, 2, -1);
  937. c2.sendConfig(1, slot, 2, -1);
  938. c2.sendConfig(2, slot, col, -1);
  939. }
  940. }
  941.  
  942. }
  943.  
  944. /**
  945. * Button click
  946. */
  947. public void buttonClick(int buttonId) {
  948. switch(buttonId) {
  949. case 95185:
  950. selectedSlot = 1;
  951. openInterface("Buy");
  952. break;
  953. case 95191:
  954. selectedSlot = 1;
  955. openInterface("Sell");
  956. break;
  957. case 95203:
  958. selectedSlot = 2;
  959. openInterface("Buy");
  960. break;
  961. case 95206:
  962. selectedSlot = 2;
  963. openInterface("Sell");
  964. break;
  965. case 95194:
  966. selectedSlot = 3;
  967. openInterface("Buy");
  968. break;
  969. case 95209:
  970. selectedSlot = 3;
  971. openInterface("Sell");
  972. break;
  973. case 95188:
  974. selectedSlot = 4;
  975. openInterface("Buy");
  976. break;
  977. case 95212:
  978. selectedSlot = 4;
  979. openInterface("Sell");
  980. break;
  981. case 95197:
  982. selectedSlot = 5;
  983. openInterface("Buy");
  984. break;
  985. case 95215:
  986. selectedSlot = 5;
  987. openInterface("Sell");
  988. break;
  989. case 95200:
  990. selectedSlot = 6;
  991. openInterface("Buy");
  992. break;
  993. case 95218:
  994. selectedSlot = 6;
  995. openInterface("Sell");
  996. break;
  997. case 96078:
  998. c.sendConfig(6, -1, -1, -1);
  999. break;
  1000. case 96174:
  1001. if(selectedItemId == 0) {
  1002. c.sendMessage("You must choose an item first.");
  1003. return;
  1004. }
  1005. completeOffer("Sell");
  1006. break;
  1007. case 96074:
  1008. if(selectedItemId == 0) {
  1009. c.sendMessage("You must choose an item first.");
  1010. return;
  1011. }
  1012. completeOffer("Buy");
  1013. break;
  1014. case 96082:
  1015. case 96182:
  1016. c.getPA().showInterface(24500);
  1017. break;
  1018. case 96030:
  1019. case 96130:
  1020. if(selectedItemId == 0) {
  1021. c.sendMessage("You must choose an item first.");
  1022. return;
  1023. }
  1024. if(selectedAmount != 0) {
  1025. selectedAmount--;
  1026. updateGE(selectedItemId, selectedPrice);
  1027. }
  1028. break;
  1029. case 96034:
  1030. case 96134:
  1031. if(selectedItemId == 0) {
  1032. c.sendMessage("You must choose an item first.");
  1033. return;
  1034. }
  1035. if(selectedAmount != 2147483647) {
  1036. selectedAmount++;
  1037. updateGE(selectedItemId, selectedPrice);
  1038. }
  1039. break;
  1040. case 96038:
  1041. case 96138:
  1042. if(selectedItemId == 0) {
  1043. c.sendMessage("You must choose an item first.");
  1044. return;
  1045. }
  1046. if(selectedAmount != 2147483647) {
  1047. selectedAmount++;
  1048. updateGE(selectedItemId, selectedPrice);
  1049. }
  1050. break;
  1051. case 96042:
  1052. case 96142:
  1053. if(selectedItemId == 0) {
  1054. c.sendMessage("You must choose an item first.");
  1055. return;
  1056. }
  1057. long a = selectedAmount;
  1058. long total = a+10;
  1059. if(total < 2147483647) {
  1060. selectedAmount += 10;
  1061. updateGE(selectedItemId, selectedPrice);
  1062. } else {
  1063. selectedAmount = 2147483647;
  1064. updateGE(selectedItemId, selectedPrice);
  1065. }
  1066. break;
  1067. case 96046:
  1068. case 96146:
  1069. if(selectedItemId == 0) {
  1070. c.sendMessage("You must choose an item first.");
  1071. return;
  1072. }
  1073. long l = selectedAmount;
  1074. long t = l+100;
  1075. if(t < 2147483647) {
  1076. selectedAmount += 100;
  1077. updateGE(selectedItemId, selectedPrice);
  1078. } else {
  1079. selectedAmount = 2147483647;
  1080. updateGE(selectedItemId, selectedPrice);
  1081. }
  1082. break;
  1083. case 96050:
  1084. case 96150:
  1085. if(selectedItemId == 0) {
  1086. c.sendMessage("You must choose an item first.");
  1087. return;
  1088. }
  1089. long h = selectedAmount;
  1090. long d = h+1000;
  1091. if(d < 2147483647) {
  1092. selectedAmount += 1000;
  1093. updateGE(selectedItemId, selectedPrice);
  1094. } else {
  1095. selectedAmount = 2147483647;
  1096. updateGE(selectedItemId, selectedPrice);
  1097. }
  1098. break;
  1099. case 96058:
  1100. case 96158:
  1101. if(selectedItemId == 0) {
  1102. c.sendMessage("You must choose an item first.");
  1103. return;
  1104. }
  1105. if(selectedPrice != 1) {
  1106. selectedPrice *= 0.95;
  1107. updateGE(selectedItemId, selectedPrice);
  1108. if(selectedPrice < 1) {
  1109. selectedPrice = 1;
  1110. updateGE(selectedItemId, selectedPrice);
  1111. }
  1112. }
  1113. break;
  1114. case 96070:
  1115. case 96170:
  1116. if(selectedItemId == 0) {
  1117. c.sendMessage("You must choose an item first.");
  1118. return;
  1119. }
  1120. long k = selectedPrice; k *= 1.05;
  1121. if(k <= 2147483647) {
  1122. selectedPrice *= 1.05;
  1123. if(selectedPrice < 21)
  1124. selectedPrice++;
  1125. updateGE(selectedItemId, selectedPrice);
  1126. } else {
  1127. selectedPrice = 2147483647;
  1128. updateGE(selectedItemId, selectedPrice);
  1129. }
  1130. break;
  1131. case 96062:
  1132. case 96162:
  1133. if(selectedItemId == 0) {
  1134. c.sendMessage("You must choose an item first.");
  1135. return;
  1136. }
  1137. selectedPrice = c.getShops().getItemShopValue(selectedItemId);
  1138. updateGE(selectedItemId, selectedPrice);
  1139. break;
  1140. case 96086:
  1141. case 96186:
  1142. if(selectedItemId == 0) {
  1143. c.sendMessage("You must choose an item first.");
  1144. return;
  1145. }
  1146. selectedPrice--;
  1147. if(selectedPrice == 0)
  1148. selectedPrice = 1;
  1149. updateGE(selectedItemId, selectedPrice);
  1150. break;
  1151. case 96089:
  1152. case 96189:
  1153. if(selectedItemId == 0) {
  1154. c.sendMessage("You must choose an item first.");
  1155. return;
  1156. }
  1157. if(selectedPrice != 2147483647) {
  1158. selectedPrice++;
  1159. updateGE(selectedItemId, selectedPrice);
  1160. } else {
  1161. selectedPrice = 2147483647;
  1162. }
  1163. break;
  1164. case 95223:
  1165. selectedSlot = 1;
  1166. openCollect(selectedSlot, true);
  1167. break;
  1168. case 95227:
  1169. selectedSlot = 2;
  1170. openCollect(selectedSlot, true);
  1171. break;
  1172. case 95231:
  1173. selectedSlot = 3;
  1174. openCollect(selectedSlot, true);
  1175. break;
  1176. case 95235:
  1177. selectedSlot = 4;
  1178. openCollect(selectedSlot, true);
  1179. break;
  1180. case 95239:
  1181. selectedSlot = 5;
  1182. openCollect(selectedSlot, true);
  1183. break;
  1184. case 95243:
  1185. selectedSlot = 6;
  1186. openCollect(selectedSlot, true);
  1187. break;
  1188. case 213230:
  1189. case 209254:
  1190. openGrandExchange(true);
  1191. break;
  1192. case 95221:
  1193. abortOffer(1, true);
  1194. break;
  1195. case 95225:
  1196. abortOffer(2, true);
  1197. break;
  1198. case 95229:
  1199. abortOffer(3, true);
  1200. break;
  1201. case 95233:
  1202. abortOffer(4, true);
  1203. break;
  1204. case 95237:
  1205. abortOffer(5, true);
  1206. break;
  1207. case 95241:
  1208. abortOffer(6, true);
  1209. break;
  1210. case 214016:
  1211. case 210040:
  1212. abortOffer(selectedSlot, true);
  1213. openCollect(selectedSlot, false);
  1214. break;
  1215. }
  1216. }
  1217.  
  1218. /**
  1219. * Complete offer
  1220. */
  1221. public void completeOffer(String type) {
  1222. if(Slots[selectedSlot] > 0) {
  1223. return;
  1224. }
  1225. if(toHigh) {
  1226. c.sendMessage("The offer you made has to high of a price.");
  1227. return;
  1228. }
  1229. if(selectedAmount == 0) {
  1230. c.sendMessage("You must buy more than one.");
  1231. return;
  1232. }
  1233. if(type == "Sell") {
  1234. sellItems();
  1235. } else if(type == "Buy") {
  1236. buyItems();
  1237. }
  1238.  
  1239. }
  1240.  
  1241.  
  1242. /**
  1243. * Update Grand Exchange
  1244. */
  1245. public void updateGE(int id, int price) {
  1246. if(price == 0) {
  1247. price = 1;
  1248. selectedPrice = 1;
  1249. }
  1250. c.getPA().sendFrame126(Misc.format(price)+" gp", 24672);
  1251. c.getPA().sendFrame126(Misc.format(price)+" gp", 24772);
  1252. long p = price; long s = selectedAmount;
  1253. long total = s*p;
  1254. if(total <= 2147483647) {
  1255. c.getPA().sendFrame126(Misc.format(price*selectedAmount)+" gp", 24673);
  1256. c.getPA().sendFrame126(Misc.format(price*selectedAmount)+" gp", 24773);
  1257. toHigh = false;
  1258. } else {
  1259. c.getPA().sendFrame126("Too high!", 24673);
  1260. c.getPA().sendFrame126("Too high!", 24773);
  1261. toHigh = true;
  1262. }
  1263. c.getPA().sendFrame126(Misc.format(selectedAmount)+"", 24671);
  1264. c.getPA().sendFrame126(Misc.format(selectedAmount)+"", 24771);
  1265. c.getPA().sendFrame126(Misc.format(c.getShops().getItemShopValue(id))+"", 24682);
  1266. c.getPA().sendFrame126(Misc.format(c.getShops().getItemShopValue(id))+"", 24782);
  1267. if(id > 0) {
  1268. c.getPA().sendFrame126(""+c.getItems().getItemName(id), 24669);
  1269. c.getPA().sendFrame126("It's a "+c.getItems().getItemName(id), 24670);
  1270. c.getPA().sendFrame126(""+c.getItems().getItemName(id), 24769);
  1271. c.getPA().sendFrame126("It's a "+c.getItems().getItemName(id), 24770);
  1272. c.getPA().sendFrame34(id, 0, 24780, 1);
  1273. c.getPA().sendFrame34(id, 0, 24680, 1);
  1274. } else {
  1275. c.getPA().sendFrame34(-1, 0, 24780, 1);
  1276. c.getPA().sendFrame34(-1, 0, 24680, 1);
  1277. }
  1278. }
  1279.  
  1280. /**
  1281. * Open the collection interface
  1282. */
  1283. public void openCollect(int id, boolean open) {
  1284. if(sellers[Slots[id]] != null && sellers[Slots[id]].owner.equalsIgnoreCase(c.playerName) && SlotType[id] == 1) {
  1285. long p = sellers[Slots[id]].price; long a = sellers[Slots[id]].amount;
  1286. long total = a*p;
  1287. if(total <= 2147483647) {
  1288. c.getPA().sendFrame126(Misc.format(sellers[Slots[id]].amount)+"", 54771);
  1289. c.getPA().sendFrame126(Misc.format(sellers[Slots[id]].price)+" gp", 54772);
  1290. c.getPA().sendFrame126(Misc.format(sellers[Slots[id]].price*sellers[Slots[id]].amount)+" gp", 54773);
  1291. if(sellers[Slots[id]].itemId > 0) {
  1292. c.getPA().sendFrame34(sellers[Slots[id]].itemId, 0, 54780, 1);
  1293. } else {
  1294. return;
  1295. }
  1296. if(sellers[Slots[id]].itemOne > 0 && sellers[Slots[id]].itemOneAmount > 0) {
  1297. c.getPA().sendFrame34(sellers[Slots[id]].itemOne, 0, 54781, 1);
  1298. if(sellers[Slots[id]].itemOneAmount > 1) {
  1299. c.getPA().sendFrame126(intToKOrMil(sellers[Slots[id]].itemOneAmount)+"", 54784);
  1300. } else {
  1301. c.getPA().sendFrame126("", 54784);
  1302. }
  1303. } else {
  1304. c.getPA().sendFrame34(-1, 0, 54781, 1);
  1305. c.getPA().sendFrame126("", 54784);
  1306. }
  1307. if(sellers[Slots[id]].itemTwo > 0 && sellers[Slots[id]].itemTwoAmount > 0) {
  1308. c.getPA().sendFrame34(sellers[Slots[id]].itemTwo, 0, 54782, 1);
  1309. if(sellers[Slots[id]].itemTwoAmount > 1) {
  1310. c.getPA().sendFrame126(intToKOrMil(sellers[Slots[id]].itemTwoAmount)+"", 54785);
  1311. } else {
  1312. c.getPA().sendFrame126("", 54785);
  1313. }
  1314. } else {
  1315. c.getPA().sendFrame34(-1, 0, 54782, 1);
  1316. c.getPA().sendFrame126("", 54785);
  1317. }
  1318. c.getPA().sendFrame126("@gec@You sold a total of @gea@"+sellers[Slots[id]].total, 54788);
  1319. c.getPA().sendFrame126("@gec@for a total price of @gea@"+sellers[Slots[id]].totalGp+"@gec@ gp.", 54789);
  1320. c.getPA().sendFrame126(Misc.format(c.getShops().getItemShopValue(sellers[Slots[id]].itemId))+"", 54787);
  1321. c.getPA().sendFrame126(""+c.getItems().getItemName(sellers[Slots[id]].itemId), 53769);
  1322. c.getPA().sendFrame126("It's a "+c.getItems().getItemName(sellers[Slots[id]].itemId), 53770);
  1323. c.sendConfig(4, selectedSlot, 2, -1);
  1324. if(open) {
  1325. c.getPA().showInterface(54700);
  1326. }
  1327. } else {
  1328. }
  1329. } else if(buyers[Slots[id]] != null && buyers[Slots[id]].owner.equalsIgnoreCase(c.playerName) && SlotType[id] == 2) {
  1330. long p = buyers[Slots[id]].price; long a = buyers[Slots[id]].amount;
  1331. long total = a*p;
  1332. if(total <= 2147483647) {
  1333. c.getPA().sendFrame126(Misc.format(buyers[Slots[id]].amount)+"", 53771);
  1334. c.getPA().sendFrame126(Misc.format(buyers[Slots[id]].price)+" gp", 53772);
  1335. c.getPA().sendFrame126(Misc.format(buyers[Slots[id]].price*buyers[Slots[id]].amount)+" gp", 53773);
  1336. if(buyers[Slots[id]].itemId > 0) {
  1337. c.getPA().sendFrame34(buyers[Slots[id]].itemId, 0, 53780, 1);
  1338. } else {
  1339. return;
  1340. }
  1341. if(buyers[Slots[id]].itemOne > 0 && buyers[Slots[id]].itemOneAmount > 0) {
  1342. c.getPA().sendFrame34(buyers[Slots[id]].itemOne, 0, 53781, 1);
  1343. c.getPA().sendFrame126(buyers[Slots[id]].itemOneAmount+"", 53784);
  1344. if(buyers[Slots[id]].itemOneAmount > 1) {
  1345. c.getPA().sendFrame126(intToKOrMil(buyers[Slots[id]].itemOneAmount)+"", 53784);
  1346. } else {
  1347. c.getPA().sendFrame126("", 53784);
  1348. }
  1349. } else {
  1350. c.getPA().sendFrame34(-1, 0, 53781, 1);
  1351. c.getPA().sendFrame126("", 53784);
  1352. }
  1353. if(buyers[Slots[id]].itemTwo > 0 && buyers[Slots[id]].itemTwoAmount > 0) {
  1354. c.getPA().sendFrame34(buyers[Slots[id]].itemTwo, 0, 53782, 1);
  1355. if(buyers[Slots[id]].itemTwoAmount > 1) {
  1356. c.getPA().sendFrame126(intToKOrMil(buyers[Slots[id]].itemTwoAmount)+"", 53785);
  1357. } else {
  1358. c.getPA().sendFrame126("", 53785);
  1359. }
  1360. } else {
  1361. c.getPA().sendFrame34(-1, 0, 53782, 1);
  1362. c.getPA().sendFrame126("", 53785);
  1363. }
  1364. c.getPA().sendFrame126("@gec@You bought a total of @gea@"+buyers[Slots[id]].total, 53788);
  1365. c.getPA().sendFrame126("@gec@for a total price of @gea@"+buyers[Slots[id]].totalGp+"@gec@ gp.", 53789);
  1366. c.getPA().sendFrame126(Misc.format(c.getShops().getItemShopValue(buyers[Slots[id]].itemId))+"", 53787);
  1367. c.getPA().sendFrame126(""+c.getItems().getItemName(buyers[Slots[id]].itemId), 54769);
  1368. c.getPA().sendFrame126("It's a "+c.getItems().getItemName(buyers[Slots[id]].itemId), 54770);
  1369. c.sendConfig(4, selectedSlot, 2, -1);
  1370. if(open) {
  1371. c.getPA().showInterface(53700);
  1372. }
  1373. } else {
  1374. }
  1375. }
  1376. }
  1377.  
  1378. /**
  1379. * Open main Grand Exchange interface
  1380. */
  1381. public void openGrandExchange(boolean open) {
  1382. for(int i = 1; i < Slots.length; i++) {
  1383. if(Slots[i] != 0) {
  1384. if(sellers[Slots[i]] != null && sellers[Slots[i]].owner.equalsIgnoreCase(c.playerName) && sellers[Slots[i]].slot == i) {
  1385. if(sellers[Slots[i]].completed) {
  1386. c.sendConfig(5, i, 5, -1);
  1387. } else {
  1388. c.sendConfig(5, i, 3, -1);
  1389. }
  1390. int k = i*2; k += 24565;
  1391. c.getPA().sendFrame34(sellers[Slots[i]].itemId, 0, k, sellers[Slots[i]].amount);
  1392. c.getPA().sendFrame126(""+c.getItems().getItemName(sellers[Slots[i]].itemId)+"", 32000+i);
  1393. c.getPA().sendFrame126(Misc.format(sellers[Slots[i]].price)+" gp", 33000+i);
  1394. if(sellers[Slots[i]].amount != 1) {
  1395. c.getPA().sendFrame126(""+intToKOrMil(sellers[Slots[i]].amount), 33100+i);
  1396. } else {
  1397. c.getPA().sendFrame126("", 33100+i);
  1398. }
  1399. if(sellers[Slots[i]].aborted) {
  1400. updateBar("Red", "Sell", Slots[i], i, c);
  1401. } else {
  1402. updateBar("Green", "Sell", Slots[i], i, c);
  1403. }
  1404. } else if(buyers[Slots[i]] != null && buyers[Slots[i]].owner.equalsIgnoreCase(c.playerName) && buyers[Slots[i]].slot == i) {
  1405. if(buyers[Slots[i]].completed) {
  1406. c.sendConfig(5, i, 6, -1);
  1407. } else {
  1408. c.sendConfig(5, i, 4, -1);
  1409. }
  1410. int k = i*2; k += 24565;
  1411. c.getPA().sendFrame34(buyers[Slots[i]].itemId, 0, k, buyers[Slots[i]].amount);
  1412. c.getPA().sendFrame126(""+c.getItems().getItemName(buyers[Slots[i]].itemId)+"", 32000+i);
  1413. c.getPA().sendFrame126(Misc.format(buyers[Slots[i]].price)+" gp", 33000+i);
  1414. if(buyers[Slots[i]].amount != 1) {
  1415. c.getPA().sendFrame126(""+intToKOrMil(buyers[Slots[i]].amount), 33100+i);
  1416. } else {
  1417. c.getPA().sendFrame126("", 33100+i);
  1418. }
  1419. if(buyers[Slots[i]].aborted) {
  1420. updateBar("Red", "Buy", Slots[i], i, c);
  1421. } else {
  1422. updateBar("Green", "Buy", Slots[i], i, c);
  1423. }
  1424. }
  1425. } else {
  1426. c.sendConfig(4, i, 3, -1);
  1427. int k = i*2; k += 24565;
  1428. c.getPA().sendFrame34(-1, 0, k, 1);
  1429. c.getPA().sendFrame126("", 33000+i);
  1430. c.getPA().sendFrame126("", 32000+i);
  1431. c.getPA().sendFrame126("", 33100+i);
  1432. }
  1433. }
  1434. if(open) {
  1435. c.getPA().showInterface(24500);
  1436. recievedMessage = false;
  1437. }
  1438. }
  1439.  
  1440. /**
  1441. * Open Buy or Sell interface
  1442. */
  1443. public void openInterface(String type) {
  1444. if(Slots[selectedSlot] > 0) {
  1445. return;
  1446. }
  1447. selectedItemId = 0;
  1448. selectedAmount = 0;
  1449. selectedPrice = 0;
  1450. updateGE(-1, 1);
  1451. c.getPA().sendFrame126("Choose an item to exchange", 24669);
  1452. c.getPA().sendFrame126("Click the icon to the left to search for items.", 24670);
  1453. c.getPA().sendFrame126("Choose an item to exchange", 24769);
  1454. c.getPA().sendFrame126("Select an item from your invertory to sell.", 24770);
  1455. c.getPA().sendFrame126("N/A", 24682);
  1456. c.getPA().sendFrame126("N/A", 24782);
  1457. c.sendConfig(4, selectedSlot, 2, -1);
  1458. if(type == "Sell") {
  1459. c.getPA().showInterface(24700);
  1460. } else if(type == "Buy") {
  1461. c.getPA().showInterface(24600);
  1462. }
  1463. }
  1464.  
  1465. /**
  1466. * Item collecting
  1467. */
  1468. public void collectItem(int i, String type) {
  1469. int itemId = 0;
  1470. if(type == "Sell") {
  1471. if(i == 1) {
  1472. if(sellers[Slots[selectedSlot]] == null) {
  1473. return;
  1474. }
  1475. itemId = sellers[Slots[selectedSlot]].itemOne;
  1476. if(Item.itemIsNote[itemId])
  1477. itemId -= 1;
  1478. if(c.getItems().freeSlots() == 0) {
  1479. c.sendMessage("You don't have enough inventory space.");
  1480. return;
  1481. }
  1482. if(itemId >= 996 && itemId <= 1004) {
  1483. itemId = 995;
  1484. }
  1485. if(sellers[Slots[selectedSlot]].itemOneAmount <= 0) {
  1486. return;
  1487. }
  1488. if(c.getItems().freeSlots() > 0 && !Item.itemStackable[itemId]) {
  1489. c.getItems().addItem(itemId, sellers[Slots[selectedSlot]].itemOneAmount);
  1490. sellers[Slots[selectedSlot]].itemOneAmount = 0;
  1491. }
  1492. if(c.getItems().freeSlots() > 0 && !Item.itemStackable[itemId]) {
  1493. if(Item.itemIsNote[itemId+1]) {
  1494. itemId += 1;
  1495. } else {
  1496. return;
  1497. }
  1498. c.getItems().addItem(itemId, sellers[Slots[selectedSlot]].itemOneAmount);
  1499. sellers[Slots[selectedSlot]].itemOneAmount = 0;
  1500. }
  1501. boolean save = true;
  1502. if(sellers[Slots[selectedSlot]].itemOneAmount == 0 && sellers[Slots[selectedSlot]].itemTwoAmount == 0 && sellers[Slots[selectedSlot]].updatedAmount != 0) {
  1503. sellers[Slots[selectedSlot]].updated = false;
  1504. }
  1505. if(sellers[Slots[selectedSlot]].itemOneAmount == 0 && sellers[Slots[selectedSlot]].itemTwoAmount == 0 && sellers[Slots[selectedSlot]].updatedAmount == 0) {
  1506. deleteFile("Data/GrandExchange/Sellers/"+Slots[selectedSlot]+"");
  1507. sellers[Slots[selectedSlot]].itemId = 0;
  1508. sellers[Slots[selectedSlot]].amount = 0;
  1509. sellers[Slots[selectedSlot]].updatedAmount = 0;
  1510. sellers[Slots[selectedSlot]].price = 0;
  1511. sellers[Slots[selectedSlot]].percentage = 0;
  1512. sellers[Slots[selectedSlot]].slot = 0;
  1513. sellers[Slots[selectedSlot]].itemOne = 0;
  1514. sellers[Slots[selectedSlot]].itemTwo = 0;
  1515. sellers[Slots[selectedSlot]].itemOneAmount = 0;
  1516. sellers[Slots[selectedSlot]].itemTwoAmount = 0;
  1517. sellers[Slots[selectedSlot]].total = 0;
  1518. sellers[Slots[selectedSlot]].totalGp = 0;
  1519. sellers[Slots[selectedSlot]].aborted = false;
  1520. sellers[Slots[selectedSlot]].completed = false;
  1521. sellers[Slots[selectedSlot]].updated = false;
  1522. sellers[Slots[selectedSlot]].owner = "";
  1523. sellers[Slots[selectedSlot]] = null;
  1524. Slots[selectedSlot] = 0;
  1525. SlotType[selectedSlot] = 0;
  1526. openGrandExchange(true);
  1527. save = false;
  1528. }
  1529. if(save) {
  1530. saveOffer(Slots[selectedSlot], "Sell");
  1531. }
  1532. recievedMessage = false;
  1533. PlayerSave.saveGame(c);
  1534. openCollect(selectedSlot, false);
  1535. }
  1536. if(i == 2) {
  1537. if(sellers[Slots[selectedSlot]] == null) {
  1538. return;
  1539. }
  1540. itemId = sellers[Slots[selectedSlot]].itemTwo;
  1541. if(Item.itemIsNote[itemId])
  1542. itemId -= 1;
  1543. if(c.getItems().freeSlots() == 0) {
  1544. c.sendMessage("You don't have enough inventory space.");
  1545. return;
  1546. }
  1547. if(itemId >= 996 && itemId <= 1004) {
  1548. itemId = 995;
  1549. }
  1550. if(sellers[Slots[selectedSlot]].itemTwoAmount <= 0) {
  1551. return;
  1552. }
  1553. if(c.getItems().freeSlots() > 0 && Item.itemStackable[itemId]) {
  1554. c.getItems().addItem(itemId, sellers[Slots[selectedSlot]].itemTwoAmount);
  1555. sellers[Slots[selectedSlot]].itemTwoAmount = 0;
  1556. }
  1557. if(c.getItems().freeSlots() > 0 && !Item.itemStackable[itemId]) {
  1558. if(Item.itemIsNote[itemId+1]) {
  1559. itemId += 1;
  1560. } else {
  1561. return;
  1562. }
  1563. c.getItems().addItem(itemId, sellers[Slots[selectedSlot]].itemTwoAmount);
  1564. sellers[Slots[selectedSlot]].itemTwoAmount = 0;
  1565. }
  1566. boolean save = true;
  1567. if(sellers[Slots[selectedSlot]].itemOneAmount == 0 && sellers[Slots[selectedSlot]].itemTwoAmount == 0 && sellers[Slots[selectedSlot]].updatedAmount != 0) {
  1568. sellers[Slots[selectedSlot]].updated = false;
  1569. }
  1570. if(sellers[Slots[selectedSlot]].itemOneAmount == 0 && sellers[Slots[selectedSlot]].itemTwoAmount == 0 && sellers[Slots[selectedSlot]].updatedAmount == 0) {
  1571. deleteFile("Data/GrandExchange/Sellers/"+Slots[selectedSlot]+"");
  1572. sellers[Slots[selectedSlot]].id = 0;
  1573. sellers[Slots[selectedSlot]].itemId = 0;
  1574. sellers[Slots[selectedSlot]].amount = 0;
  1575. sellers[Slots[selectedSlot]].updatedAmount = 0;
  1576. sellers[Slots[selectedSlot]].price = 0;
  1577. sellers[Slots[selectedSlot]].percentage = 0;
  1578. sellers[Slots[selectedSlot]].slot = 0;
  1579. sellers[Slots[selectedSlot]].total = 0;
  1580. sellers[Slots[selectedSlot]].totalGp = 0;
  1581. sellers[Slots[selectedSlot]].itemOne = 0;
  1582. sellers[Slots[selectedSlot]].itemTwo = 0;
  1583. sellers[Slots[selectedSlot]].itemOneAmount = 0;
  1584. sellers[Slots[selectedSlot]].itemTwoAmount = 0;
  1585. sellers[Slots[selectedSlot]].aborted = false;
  1586. sellers[Slots[selectedSlot]].completed = false;
  1587. sellers[Slots[selectedSlot]].updated = false;
  1588. sellers[Slots[selectedSlot]].owner = "";
  1589. sellers[Slots[selectedSlot]] = null;
  1590. Slots[selectedSlot] = 0;
  1591. SlotType[selectedSlot] = 0;
  1592. openGrandExchange(true);
  1593. save = false;
  1594. }
  1595. if(save) {
  1596. saveOffer(Slots[selectedSlot], "Sell");
  1597. }
  1598. recievedMessage = false;
  1599. PlayerSave.saveGame(c);
  1600. openCollect(selectedSlot, false);
  1601. }
  1602. }
  1603. if(type == "Buy") {
  1604. if(i == 1) {
  1605. if(buyers[Slots[selectedSlot]] == null) {
  1606. return;
  1607. }
  1608. itemId = buyers[Slots[selectedSlot]].itemOne;
  1609. if(Item.itemIsNote[itemId])
  1610. itemId -= 1;
  1611. if(c.getItems().freeSlots() == 0) {
  1612. c.sendMessage("You don't have enough inventory space.");
  1613. return;
  1614. }
  1615. if(itemId >= 996 && itemId <= 1004) {
  1616. itemId = 995;
  1617. }
  1618. if(buyers[Slots[selectedSlot]].itemOneAmount <= 0) {
  1619. return;
  1620. }
  1621. if(c.getItems().freeSlots() > 0 && Item.itemStackable[itemId]) {
  1622. c.getItems().addItem(itemId, buyers[Slots[selectedSlot]].itemOneAmount);
  1623. buyers[Slots[selectedSlot]].itemOneAmount = 0;
  1624. }
  1625. if(c.getItems().freeSlots() > 0 && !Item.itemStackable[itemId]) {
  1626. if(Item.itemIsNote[itemId+1]) {
  1627. itemId += 1;
  1628. } else {
  1629. return;
  1630. }
  1631. c.getItems().addItem(itemId, buyers[Slots[selectedSlot]].itemOneAmount);
  1632. buyers[Slots[selectedSlot]].itemOneAmount = 0;
  1633. }
  1634. boolean save = true;
  1635. if(buyers[Slots[selectedSlot]].itemOneAmount == 0 && buyers[Slots[selectedSlot]].itemTwoAmount == 0 && buyers[Slots[selectedSlot]].updatedAmount != 0) {
  1636. buyers[Slots[selectedSlot]].updated = false;
  1637. }
  1638. if(buyers[Slots[selectedSlot]].itemOneAmount == 0 && buyers[Slots[selectedSlot]].itemTwoAmount == 0 && buyers[Slots[selectedSlot]].updatedAmount == 0) {
  1639. deleteFile("Data/GrandExchange/Buyers/"+Slots[selectedSlot]+"");
  1640. buyers[Slots[selectedSlot]].id = 0;
  1641. buyers[Slots[selectedSlot]].itemId = 0;
  1642. buyers[Slots[selectedSlot]].amount = 0;
  1643. buyers[Slots[selectedSlot]].updatedAmount = 0;
  1644. buyers[Slots[selectedSlot]].price = 0;
  1645. buyers[Slots[selectedSlot]].percentage = 0;
  1646. buyers[Slots[selectedSlot]].slot = 0;
  1647. buyers[Slots[selectedSlot]].itemOne = 0;
  1648. buyers[Slots[selectedSlot]].itemTwo = 0;
  1649. buyers[Slots[selectedSlot]].itemOneAmount = 0;
  1650. buyers[Slots[selectedSlot]].itemTwoAmount = 0;
  1651. buyers[Slots[selectedSlot]].total = 0;
  1652. buyers[Slots[selectedSlot]].totalGp = 0;
  1653. buyers[Slots[selectedSlot]].aborted = false;
  1654. buyers[Slots[selectedSlot]].completed = false;
  1655. buyers[Slots[selectedSlot]].updated = false;
  1656. buyers[Slots[selectedSlot]].owner = "";
  1657. buyers[Slots[selectedSlot]] = null;
  1658. Slots[selectedSlot] = 0;
  1659. SlotType[selectedSlot] = 0;
  1660. openGrandExchange(true);
  1661. save = false;
  1662. }
  1663. if(save) {
  1664. saveOffer(Slots[selectedSlot], "Buy");
  1665. }
  1666. recievedMessage = false;
  1667. PlayerSave.saveGame(c);
  1668. openCollect(selectedSlot, false);
  1669. }
  1670. if(i == 2) {
  1671. if(buyers[Slots[selectedSlot]] == null) {
  1672. return;
  1673. }
  1674. itemId = buyers[Slots[selectedSlot]].itemTwo;
  1675. if(Item.itemIsNote[itemId])
  1676. itemId -= 1;
  1677. if(c.getItems().freeSlots() == 0) {
  1678. c.sendMessage("You don't have enough inventory space.");
  1679. return;
  1680. }
  1681. if(itemId >= 996 && itemId <= 1004) {
  1682. itemId = 995;
  1683. }
  1684. if(buyers[Slots[selectedSlot]].itemTwoAmount <= 0) {
  1685. return;
  1686. }
  1687. if(c.getItems().freeSlots() > 0 && Item.itemStackable[itemId]) {
  1688. c.getItems().addItem(itemId, buyers[Slots[selectedSlot]].itemTwoAmount);
  1689. buyers[Slots[selectedSlot]].itemTwoAmount = 0;
  1690. }
  1691. if(c.getItems().freeSlots() > 0 && !Item.itemStackable[itemId]) {
  1692. if(Item.itemIsNote[itemId+1]) {
  1693. itemId += 1;
  1694. } else {
  1695. return;
  1696. }
  1697. c.getItems().addItem(itemId, buyers[Slots[selectedSlot]].itemTwoAmount);
  1698. buyers[Slots[selectedSlot]].itemTwoAmount = 0;
  1699. }
  1700. boolean save = true;
  1701. if(buyers[Slots[selectedSlot]].itemOneAmount == 0 && buyers[Slots[selectedSlot]].itemTwoAmount == 0 && buyers[Slots[selectedSlot]].updatedAmount != 0) {
  1702. buyers[Slots[selectedSlot]].updated = false;
  1703. }
  1704. if(buyers[Slots[selectedSlot]].itemOneAmount == 0 && buyers[Slots[selectedSlot]].itemTwoAmount == 0 && buyers[Slots[selectedSlot]].updatedAmount == 0) {
  1705. deleteFile("Data/GrandExchange/Buyers/"+Slots[selectedSlot]+"");
  1706. buyers[Slots[selectedSlot]].id = 0;
  1707. buyers[Slots[selectedSlot]].itemId = 0;
  1708. buyers[Slots[selectedSlot]].amount = 0;
  1709. buyers[Slots[selectedSlot]].updatedAmount = 0;
  1710. buyers[Slots[selectedSlot]].price = 0;
  1711. buyers[Slots[selectedSlot]].percentage = 0;
  1712. buyers[Slots[selectedSlot]].slot = 0;
  1713. buyers[Slots[selectedSlot]].itemOne = 0;
  1714. buyers[Slots[selectedSlot]].itemTwo = 0;
  1715. buyers[Slots[selectedSlot]].itemOneAmount = 0;
  1716. buyers[Slots[selectedSlot]].itemTwoAmount = 0;
  1717. buyers[Slots[selectedSlot]].total = 0;
  1718. buyers[Slots[selectedSlot]].totalGp = 0;
  1719. buyers[Slots[selectedSlot]].aborted = false;
  1720. buyers[Slots[selectedSlot]].completed = false;
  1721. buyers[Slots[selectedSlot]].updated = false;
  1722. buyers[Slots[selectedSlot]].owner = "";
  1723. buyers[Slots[selectedSlot]] = null;
  1724. Slots[selectedSlot] = 0;
  1725. SlotType[selectedSlot] = 0;
  1726. openGrandExchange(true);
  1727. save = false;
  1728. }
  1729. if(save) {
  1730. saveOffer(Slots[selectedSlot], "Buy");
  1731. }
  1732. recievedMessage = false;
  1733. PlayerSave.saveGame(c);
  1734. openCollect(selectedSlot, false);
  1735. }
  1736. }
  1737. }
  1738.  
  1739. /**
  1740. * Abort a offer
  1741. */
  1742. public void abortOffer(int offer, boolean send) {
  1743. if(sellers[Slots[offer]] != null && SlotType[offer] == 1) {
  1744. if(sellers[Slots[offer]].completed == true) {
  1745. c.sendMessage("Your offer is already completed!");
  1746. return;
  1747. }
  1748. if(sellers[Slots[offer]].updatedAmount <= 0) {
  1749. return;
  1750. }
  1751. if(send) {
  1752. c.sendMessage("Abort request acknowledged. Please be aware that your offer may have already been");
  1753. c.sendMessage("completed.");
  1754. }
  1755. if(stillSearching) {
  1756. abortOffer(offer, false);
  1757. return;
  1758. }
  1759. if(sellers[Slots[offer]].itemOneAmount == 0) {
  1760. sellers[Slots[offer]].itemOne = sellers[Slots[offer]].itemId;
  1761. sellers[Slots[offer]].itemOneAmount = sellers[Slots[offer]].updatedAmount;
  1762. sellers[Slots[offer]].updatedAmount = 0;
  1763. sellers[Slots[offer]].aborted = true;
  1764. } else {
  1765. sellers[Slots[offer]].itemTwo = sellers[Slots[offer]].itemId;
  1766. sellers[Slots[offer]].itemTwoAmount = sellers[Slots[offer]].updatedAmount;
  1767. sellers[Slots[offer]].updatedAmount = 0;
  1768. sellers[Slots[offer]].aborted = true;
  1769. }
  1770. sellers[Slots[offer]].updated = true;
  1771. saveOffer(Slots[offer], "Sell");
  1772. openGrandExchange(false);
  1773. } else if(buyers[Slots[offer]] != null && SlotType[offer] == 2) {
  1774. if(buyers[Slots[offer]].completed == true) {
  1775. c.sendMessage("Your offer is already completed!");
  1776. return;
  1777. }
  1778. if(buyers[Slots[offer]].updatedAmount <= 0) {
  1779. return;
  1780. }
  1781. if(send) {
  1782. c.sendMessage("Abort request acknowledged. Please be aware that your offer may have already been");
  1783. c.sendMessage("completed.");
  1784. }
  1785. if(stillSearching) {
  1786. abortOffer(offer, false);
  1787. return;
  1788. }
  1789. if(buyers[Slots[offer]].itemOneAmount == 0) {
  1790. buyers[Slots[offer]].itemOneAmount = buyers[Slots[offer]].updatedAmount*buyers[Slots[offer]].price;
  1791. buyers[Slots[offer]].itemOne = getMoneyStackId(buyers[Slots[offer]].itemOneAmount);
  1792. buyers[Slots[offer]].updatedAmount = 0;
  1793. buyers[Slots[offer]].aborted = true;
  1794. } else {
  1795. buyers[Slots[offer]].itemTwoAmount = buyers[Slots[offer]].updatedAmount*buyers[Slots[offer]].price;
  1796. buyers[Slots[offer]].itemOne = getMoneyStackId(buyers[Slots[offer]].itemOneAmount);
  1797. buyers[Slots[offer]].updatedAmount = 0;
  1798. buyers[Slots[offer]].aborted = true;
  1799. }
  1800. buyers[Slots[offer]].updated = true;
  1801. saveOffer(Slots[offer], "Buy");
  1802. openGrandExchange(false);
  1803. }
  1804. }
  1805.  
  1806. /**
  1807. * Delete a file
  1808. */
  1809. public void deleteFile(String FileName) {
  1810. String fileName = ""+FileName+".txt";
  1811. File f = new File(fileName);
  1812. if (!f.exists())
  1813. throw new IllegalArgumentException("Delete: no such file or directory: " + fileName);
  1814. if (!f.canWrite())
  1815. throw new IllegalArgumentException("Delete: write protected: "+ fileName);
  1816. if (f.isDirectory()) {
  1817. String[] files = f.list();
  1818. if (files.length > 0)
  1819. throw new IllegalArgumentException("Delete: directory not empty: " + fileName);
  1820. }
  1821. boolean success = f.delete();
  1822. if (!success)
  1823. throw new IllegalArgumentException("Delete: deletion failed");
  1824. }
  1825.  
  1826. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement