Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Auction.java
- [code]package server.model.content.auct;
- import java.util.LinkedList;
- import java.util.List;
- import server.model.players.Player;
- import server.util.Misc;
- /**
- * BEAST ASS "Auction house" !!!!!!!!!!!!!!!!!!!
- *
- *
- * @author Nick/Women/asshole_rule
- * @author Rodrigo
- */
- public class Auction {
- private static Auction auction;
- private AuctionHandler handler;
- private AuctionBinary binary;
- public Auction() {
- handler = new AuctionHandler(this);
- binary = new AuctionBinary();
- offers = binary.loadOffers();
- handler.setCollections(binary.loadCollections());
- if(offers == null || handler.getCollections() == null) {
- offers = new LinkedList<Offer>();
- handler.setCollections(new LinkedList<Collect>());
- }
- }
- public static Auction getAuction() {
- if(auction == null)
- auction = new Auction();
- return auction;
- }
- public void saveInternally() {
- if(handler != null && binary != null) {
- binary.saveCollections((LinkedList<Collect>) handler.getCollections());
- binary.saveOffers((LinkedList<Offer>) offers);
- }
- }
- public AuctionHandler getHandler() {
- return handler;
- }
- /**
- * The list of offers which are waiting to be sold.
- */
- private static List<Offer> offers;
- protected List<Offer> getOffers() {
- return offers;
- }
- /**
- * Here we will display 4 offers, the sellers comment and name.
- */
- public void displayOffers(Player c, int[] values) {
- handler.resetInterface(c);
- Offer toShow[] = new Offer[4];
- if(values.length >= 4) {
- toShow[0] = offers.get(values[0]);
- toShow[1] = offers.get(values[1]);
- toShow[2] = offers.get(values[2]);
- toShow[3] = offers.get(values[3]);
- } else if (values.length == 3) {
- toShow[0] = offers.get(values[0]);
- toShow[1] = offers.get(values[1]);
- toShow[2] = offers.get(values[2]);
- } else if (values.length == 2) {
- toShow[0] = offers.get(values[0]);
- toShow[1] = offers.get(values[1]);
- } else if (values.length == 1) {
- toShow[0] = offers.get(values[0]);
- } else {
- toShow = null;
- }
- if(toShow != null) {
- Offer first = toShow[0];
- Offer second = toShow[1];
- Offer third = toShow[2];
- Offer fourth = toShow[3];
- if(first != null) {
- display(first, 1, c);
- }
- if(second != null && first != null) {
- display(second, 2, c);
- } else if (second != null && first == null) {
- display(second, 1, c);
- }
- if(third != null && first != null && second != null) {
- display(third, 3, c);
- } else if (third != null && first != null && second == null) {
- display(third, 2, c);
- } else if (third != null && first == null && second == null) {
- display(third, 1, c);
- }
- if(fourth != null && third != null && second != null && first != null) {
- display(fourth, 4, c);
- } else if (fourth != null && third != null && second != null && first == null) {
- display(fourth, 3, c);
- } else if (fourth != null && third != null && second == null && first == null) {
- display(fourth, 2, c);
- } else if (fourth != null && third == null && second == null && first == null) {
- display(fourth, 1, c);
- }
- } else {
- //nothing to show...
- }
- }
- private void display(Offer offer, int state, Player c) {
- String itemName = c.getItems().getItemName(offer.getItemId());
- switch(state) {
- case 1:
- //shows the offer in the first box.
- offer.setInterfaceId(43002);
- c.getPA().sendFrame126(offer.getComment(), 11019);
- c.getPA().sendFrame126(offer.getUsername(), 11023);
- c.getPA().sendFrame126(itemName, 11027);
- c.getPA().sendFrame126(""+Misc.formatGp(offer.getOfferedPrice())+"", 11031);
- break;
- case 2:
- offer.setInterfaceId(43003);
- c.getPA().sendFrame126(offer.getComment(), 11020);
- c.getPA().sendFrame126(offer.getUsername(), 11024);
- c.getPA().sendFrame126(itemName, 11028);
- c.getPA().sendFrame126(""+Misc.formatGp(offer.getOfferedPrice())+"", 11032);
- break;
- case 3:
- offer.setInterfaceId(43004);
- c.getPA().sendFrame126(offer.getComment(), 11021);
- c.getPA().sendFrame126(offer.getUsername(), 11025);
- c.getPA().sendFrame126(itemName, 11029);
- c.getPA().sendFrame126(""+Misc.formatGp(offer.getOfferedPrice())+"", 11033);
- break;
- case 4:
- offer.setInterfaceId(43005);
- c.getPA().sendFrame126(offer.getComment(), 11022);
- c.getPA().sendFrame126(offer.getUsername(), 11026);
- c.getPA().sendFrame126(itemName, 11030);
- c.getPA().sendFrame126(""+Misc.formatGp(offer.getOfferedPrice())+"", 11034);
- break;
- }
- }
- private int restricted[] = {
- 995
- };
- public void addOffer(Player c, String sellerComment, int itemId, int amount, int priceId) {
- for(int a : restricted) {
- if(itemId == a) {
- c.sendMessage("You cannot sell this item.");
- handler.resetInterface(c);
- return;
- }
- }
- if(!c.getItems().playerHasItem(itemId - 1, amount)) {
- System.out.println("Player ["+c.playerName+"] has tried to motherfucking dupe.");
- c.sendMessage("Bro, i will fucking rape you dont fucking dupe.");
- return;
- }
- c.getItems().deleteItem(itemId - 1, c.getItems().getItemSlot(itemId - 1),
- amount);
- Offer o = new Offer(itemId, amount, priceId, sellerComment, c.playerName);
- offers.add(o);
- System.out.println("adding player: "+c.playerName);
- saveInternally();
- changePage(c);
- c.getPA().sendFrame126(c.getItems().getItemName(itemId), 11018);
- c.getPA().sendFrame34(11035, itemId - 1, 1, 1);
- }
- public void changePage(Player c) {
- if(c.page < 0) c.page = 0;
- int max = offers.size() / 4;
- if(c.page > max) c.page = max;
- int first = (c.page * 4);
- int second = (c.page * 4) + 1;
- int third = (c.page * 4) + 2;
- int fourth = (c.page * 4) + 3;
- if(offers.size() > fourth && offers.get(first) != null && offers.get(second) != null && offers.get(third) != null && offers.get(fourth) != null) {
- displayOffers(c, new int[] {first,second,third,fourth});
- } else if(offers.size() > third && offers.get(first) != null && offers.get(second) != null && offers.get(third) != null) {
- displayOffers(c, new int[] {first,second,third});
- } else if(offers.size() > second && offers.get(first) != null && offers.get(second) != null) {
- displayOffers(c, new int[] {first,second});
- } else if(offers.size() > first && offers.get(first) != null) {
- displayOffers(c, new int[] {first});
- } else {
- handler.resetInterface(c);
- }
- }
- }
- [/code]
- AuctionBinary.java (lolol)
- [code]package server.model.content.auct;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.LinkedList;
- import java.util.List;
- /**
- * Here we will load/save the auction collection lists.
- *
- *
- * @author Nick/Women/asshole_rule
- * @author Rodrigo
- */
- public class AuctionBinary {
- private final String OFFER_DIR = "./Data/auct/offers.dat";
- private final String COLLECT_DIR = "./Data/auct/collections.dat";
- protected LinkedList<Offer> loadOffers() {
- try {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File(OFFER_DIR)));
- List<Offer> o = new LinkedList<Offer>();
- int size = in.readInt();
- for(int a = 0; a < size; a++) {
- o.add((Offer) in.readObject());
- }
- return (LinkedList<Offer>) o;
- } catch (Exception e) {
- return null;
- }
- }
- protected LinkedList<Collect> loadCollections() {
- try {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File(COLLECT_DIR)));
- List<Collect> o = new LinkedList<Collect>();
- int size = in.readInt();
- for(int a = 0; a < size; a++) {
- o.add((Collect) in.readObject());
- }
- return (LinkedList<Collect>) o;
- } catch (Exception e) {
- return null;
- }
- }
- protected void saveOffers(LinkedList<Offer> o) {
- try {
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(new File(OFFER_DIR)));
- out.writeInt(o.size());
- for(Offer offer : o) {
- out.writeObject(offer);
- }
- out.close();
- } catch (Exception e) {
- }
- }
- protected void saveCollections(LinkedList<Collect> c) {
- try {
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(new File(COLLECT_DIR)));
- out.writeInt(c.size());
- for(Collect offer : c) {
- out.writeObject(offer);
- }
- out.close();
- } catch (Exception e) {
- }
- }
- }
- [/code]
- AuctionHandler.java
- [code]package server.model.content.auct;
- import java.util.List;
- import server.model.players.Player;
- import server.model.players.PlayerHandler;
- /**
- * Here we will need to handle the selling and buying of the items.
- *
- * Buying items is done.
- *
- * @author Nick/Women/asshole_rule
- * @author Rodrigo
- */
- public class AuctionHandler {
- private Auction auction;
- /**
- * A list of offers which have been sold, but not claimed by the seller.
- */
- private static List<Collect> toCollect;
- protected void setCollections(List<Collect> c) {
- toCollect = c;
- }
- protected List<Collect> getCollections() {
- return toCollect;
- }
- public AuctionHandler(Auction auction) {
- this.auction = auction;
- }
- public void openInterface(Player c) {
- resetInterface(c);
- auction.changePage(c);
- c.auctionOpen = true;
- c.getPA().showInterface(11000);//sec
- }
- public void resetInterface(Player c) {
- c.getPA().sendFrame34(11035, -1/*lets try -1 lol*/, 1, 1);
- c.getPA().sendFrame126("No item.", 11018);
- c.getPA().sendFrame126("No item name", 11019);
- c.getPA().sendFrame126("No seller", 11023);
- c.getPA().sendFrame126("No item name", 11027);
- c.getPA().sendFrame126("No price", 11031);
- c.getPA().sendFrame126("No item name", 11020);
- c.getPA().sendFrame126("No seller", 11024);
- c.getPA().sendFrame126("No item name", 11028);
- c.getPA().sendFrame126("No price", 11032);
- c.getPA().sendFrame126("No item name", 11021);
- c.getPA().sendFrame126("No seller", 11025);
- c.getPA().sendFrame126("No item name", 11029);
- c.getPA().sendFrame126("No price", 11033);
- c.getPA().sendFrame126("No item name", 11022);
- c.getPA().sendFrame126("No seller", 11026);
- c.getPA().sendFrame126("No item name", 11030);
- c.getPA().sendFrame126("No price", 11034);
- }
- public void clickToBuy(Player c, int interfaceId) {
- Offer clicked = null;
- for(Offer o : auction.getOffers()) {
- if(o.getInterfaceId() > 0) {
- if(o.getInterfaceId() == interfaceId) {
- clicked = o;
- break;
- }
- }
- }
- if(clicked != null) {
- buyItem(clicked, c);
- } else {
- c.sendMessage("There is no item here.");
- }
- clicked = null;
- }
- public void buyItem(Offer o, Player c) {
- if(c.getItems().freeSlots() > 0) {
- if(o.getUsername().equalsIgnoreCase(c.playerName)) {
- c.sendMessage(""+o.getUsername()+" "+c.playerName+"");
- c.getItems().addItem(o.getItemId() - 1, o.getAmount());
- notifySeller(o, c);
- auction.changePage(c);
- return;
- }
- if(c.getItems().playerHasItem(995, o.getOfferedPrice())) {
- // they have enough money
- c.getItems().addItem(o.getItemId() - 1, o.getAmount());
- c.getItems().deleteItem(995, c.getItems().getItemSlot(995), o.getOfferedPrice());
- notifySeller(o, c);
- c.sendMessage("You buy "+o.getAmount()+" of "+c.getItems().getItemName(o.getItemId() - 1)+" from player: "+o.getUsername());
- auction.changePage(c);
- } else {
- c.sendMessage("You don't have enough coins to buy this item.");
- }
- } else {
- c.sendMessage("Not enough inventory space.");
- }
- }
- private void notifySeller(Offer sold, Player buyer) {
- Player seller = null;
- for(int a = 0; a < PlayerHandler.players.length; a++) {
- if(PlayerHandler.players[a] != null) {
- if(PlayerHandler.players[a].playerName.equalsIgnoreCase(sold.getUsername())) {
- seller = (Player) PlayerHandler.players[a];
- break;
- }
- }
- }
- if(sold.getUsername().equalsIgnoreCase(buyer.playerName)) {
- this.auction.changePage(seller);
- this.auction.getOffers().remove(sold);
- return;
- }
- if(seller == null) {
- Collect c = getCollect(sold.getUsername());
- if(c != null) {
- c.addOffer(sold);
- } else {
- toCollect.add(new Collect(sold, sold.getUsername()));
- }
- //hes offline.
- } else {
- seller.sendMessage("Your item["+seller.getItems().getItemName(sold.getItemId() - 1)+"] has been bought by: "+buyer.playerName+"!");
- seller.sendMessage("You receive the money you offered in your bank.");
- this.auction.changePage(seller);
- if(seller.getItems().freeSlots() > 0) {
- seller.getItems().addItem(995, sold.getOfferedPrice());
- } else {
- if(seller.getItems().playerHasItem(995)) {
- seller.getItems().addItem(995, sold.getOfferedPrice());
- } else {
- seller.getItems().addItemToBank(995, sold.getOfferedPrice());
- }
- }
- }
- this.auction.getOffers().remove(sold);
- }
- public Collect getCollect(String playerName) {
- Collect c = null;
- for(Collect o : toCollect) {
- if(o.getPlayername().equalsIgnoreCase(playerName)) {
- c = o;
- break;
- }
- }
- return c;
- }
- //when player logs in, if they have offers to collect, then it will tell them
- public void login(Player c) {
- int offers = 0;
- for(Collect o : toCollect) {
- System.out.println(o.getPlayername());
- if(o.getPlayername().equalsIgnoreCase(c.playerName))
- offers++;
- }
- if(offers > 0)
- c.sendMessage("You have "+(offers == 1 ? "a" : "more than 1")+" offer"+(offers == 1 ? "" : "s")+" to be collected.");
- }
- public void collectAll(Player c) {
- Collect col = getCollect(c.playerName);
- if(col != null) {
- for(int a= 0; a < col.getSoldOffers().length; a++) {
- if(col.getSoldOffers()[a] != null)
- giveToSeller(col.getSoldOffers()[a], c);
- if(a + 1 >= col.getSoldOffers().length)
- toCollect.remove(col);
- }
- } else {
- c.sendMessage("You have nothing to collect.");
- }
- }
- public void giveToSeller(Offer o, Player seller) {
- seller.sendMessage("Your item["+seller.getItems().getItemName(o.getItemId())+"] has been sold!");
- seller.sendMessage("You receive the money you offered in your bank.");
- if(seller.getItems().freeSlots() > 0) {
- seller.getItems().addItem(995, o.getOfferedPrice());
- } else {
- if(seller.getItems().playerHasItem(995)) {
- seller.getItems().addItem(995, o.getOfferedPrice());
- } else {
- seller.getItems().addItemToBank(995, o.getOfferedPrice());
- }
- }
- }
- }
- [/code]
- [code]package server.model.content.auct;
- import java.io.Serializable;
- /**
- * Represents the collection button, which is at the top right hand corner.
- *
- *
- * @author Nick/Women/asshole_rule
- * @author Rodrigo
- */
- public class Collect implements Serializable {
- private Offer[] soldOffers = new Offer[5];
- private String playername;
- public Collect(Offer o, String playername) {
- getSoldOffers()[0] = o;
- this.setPlayername(playername);
- }
- public Offer[] getSoldOffers() {
- return soldOffers;
- }
- public void addOffer(Offer o) {
- int slot = getFreeSlot(soldOffers);
- if(slot != -1) {
- soldOffers[slot] = o;
- }
- }
- public static int getFreeSlot(Object[] a) {
- for(int idx = 1; idx < a.length; idx++) {
- if(a[idx] == null)
- return idx;
- }
- return -1;
- }
- public String getPlayername() {
- return playername;
- }
- public void setPlayername(String playername) {
- this.playername = playername;
- }
- }
- [/code]
- [code]package server.model.content.auct;
- import java.io.Serializable;
- /**
- * Represents an offer in the auction house.
- *
- *
- * @author Nick/Women/asshole_rule
- * @author Rodrigo
- */
- public class Offer implements Serializable {
- private int itemId;
- private int amount;
- private int offeredPrice;
- private int interfaceId;
- private String comment;
- private String username;
- public Offer(int itemId, int amount, int offeredPrice, String comment, String username) {
- this.setAmount(amount);
- this.setItemId(itemId);
- this.setOfferedPrice(offeredPrice);
- this.setComment(comment);
- this.setUsername(username);
- }
- public int getItemId() {
- return itemId;
- }
- public void setItemId(int itemId) {
- this.itemId = itemId;
- }
- public int getAmount() {
- return amount;
- }
- public void setAmount(int amount) {
- this.amount = amount;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getComment() {
- return comment;
- }
- public void setComment(String comment) {
- this.comment = comment;
- }
- public int getOfferedPrice() {
- return offeredPrice;
- }
- public void setOfferedPrice(int offeredPrice) {
- this.offeredPrice = offeredPrice;
- }
- public int getInterfaceId() {
- return interfaceId;
- }
- public void setInterfaceId(int interfaceId) {
- this.interfaceId = interfaceId;
- }
- }
- [/code]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement