Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.10 KB | None | 0 0
  1. package com.ruseps.shops.impl;
  2.  
  3. import java.sql.ResultSet;
  4. import java.util.HashMap;
  5.  
  6. import com.ruseps.Server;
  7. import com.ruseps.model.Item;
  8. import com.ruseps.model.definitions.ItemDefinition;
  9. import com.ruseps.shops.Shop;
  10. import com.ruseps.world.content.dialogue.Dialogue;
  11. import com.ruseps.world.content.dialogue.DialogueExpression;
  12. import com.ruseps.world.content.dialogue.DialogueManager;
  13. import com.ruseps.world.content.dialogue.DialogueType;
  14. import com.ruseps.world.entity.impl.player.JsonPlayerSaving;
  15. import com.ruseps.world.entity.impl.player.Player;
  16.  
  17. public abstract class PointsShop extends Shop {
  18.  
  19.  
  20.     public void sendShopName(Player player) {
  21.         player.getPA().sendFrame126(this.getPointsName() + ": (@red@" + this.getPointsAmount(player) + "@lre@)", SHOP_NAME_STRING_ID);
  22.     }
  23.  
  24.     protected HashMap<Integer, Integer> prices = new HashMap<Integer, Integer>();
  25.  
  26.     public PointsShop(int id, String name) {
  27.         super(id, name, false);
  28.         try {
  29.             loadPrices();
  30.         } catch (Exception e) {
  31.             e.printStackTrace();
  32.         }
  33.     }
  34.  
  35.     /**
  36.      * Loads the prices for all items
  37.      *
  38.      * @throws Exception
  39.      */
  40.     private void loadPrices() throws Exception {
  41.          
  42.         if (getPointsName() == "Dungoneering tokens") {
  43.             prices.put(18361, 250000); //ahrim set
  44.             prices.put(18349, 250000); //karil set
  45.             prices.put(18353, 250000); //bolt racks
  46.             prices.put(18357, 250000); //overloads
  47.             prices.put(18355, 250000); //ahrim set
  48.             prices.put(18359, 250000); //karil set
  49.             prices.put(18361, 250000); //bolt racks
  50.             prices.put(18363, 250000); //overloads
  51.             prices.put(16955, 1500000); //overloads
  52.             prices.put(18335, 75000); //ahrim set
  53.             prices.put(16425, 1500000); //karil set
  54.             prices.put(16909, 1500000); //bolt racks
  55.             prices.put(6500, 500000); //overloads
  56.             prices.put(18346, 80000); //overloads
  57.             prices.put(18782, 30000); //overloads
  58.             prices.put(18337, 75000); //overloads
  59.             prices.put(19669, 200000); //overloads
  60.             prices.put(6924, 350); //overloads
  61.           }
  62.         if (getPointsName() == "Bossing points") {
  63.             prices.put(2572, 3); //ahrim set
  64.             prices.put(19713, 20); //karil set
  65.             prices.put(19714, 20); //bolt racks
  66.             prices.put(19715, 20); //overloads
  67.             prices.put(52003, 1800); //ahrim set
  68.             prices.put(51733, 1950); //karil set
  69.             prices.put(11846, 15); //bolt racks
  70.             prices.put(11848, 15); //overloads
  71.             prices.put(11850, 13); //overloads
  72.             prices.put(11854, 13); //ahrim set
  73.             prices.put(11856, 12); //karil set
  74.             prices.put(18830, 1); //bolt racks
  75.             prices.put(15220, 10); //overloads
  76.             prices.put(15018, 10); //overloads
  77.             prices.put(15020, 10); //overloads
  78.             prices.put(15019, 10); //overloads
  79.             prices.put(11716, 13); //overloads
  80.             prices.put(19335, 12); //overloads
  81.             prices.put(15273, 1); //overloads
  82.             prices.put(989, 3); //overloads
  83.             prices.put(985, 1); //ahrim set
  84.             prices.put(987, 1); //karil set
  85.             prices.put(18337, 20); //bolt racks
  86.             prices.put(11730, 25); //overloads
  87.             prices.put(15486, 30); //overloads
  88.             prices.put(15241, 30); //overloads
  89.             prices.put(6500, 25); //overloads
  90.             prices.put(12790, 15); //overloads
  91.             prices.put(10025, 3); //overloads
  92.             prices.put(15501, 45); //overloads
  93.             prices.put(6199, 15); //overloads
  94.             prices.put(12926, 600); //ahrim set
  95.             prices.put(12927, 900); //karil set
  96.             prices.put(19723, 200); //bolt racks
  97.             prices.put(19724, 200); //overloads
  98.             prices.put(19725, 200); //overloads
  99.             prices.put(6831, 1500); //overloads
  100.             prices.put(6832, 2000); //overloads
  101.             prices.put(6830, 3000); //overloads
  102.            
  103.           }
  104.         if (getPointsName() == "Prestige points") {
  105.             prices.put(15501, 11); //ahrim set
  106.             prices.put(19335, 6); //karil set
  107.             prices.put(15220, 3); //bolt racks
  108.             prices.put(15020, 3); //overloads
  109.             prices.put(15019, 3); //ahrim set
  110.             prices.put(15018, 3); //karil set
  111.             prices.put(20000, 10); //bolt racks
  112.             prices.put(20001, 10); //overloads
  113.             prices.put(20002, 10); //overloads
  114.             prices.put(13855, 6); //ahrim set
  115.             prices.put(13848, 6); //karil set
  116.             prices.put(13857, 6); //bolt racks
  117.             prices.put(13856, 6); //overloads
  118.             prices.put(13854, 6); //overloads
  119.             prices.put(13853, 6); //overloads
  120.             prices.put(13852, 6); //overloads
  121.             prices.put(13851, 6); //overloads
  122.             prices.put(13850, 6); //overloads
  123.             prices.put(13849, 10); //overloads
  124.             prices.put(10400, 8); //ahrim set
  125.             prices.put(10402, 10); //karil set
  126.             prices.put(10418, 8); //bolt racks
  127.             prices.put(10408, 12); //overloads
  128.             prices.put(10410, 10); //overloads
  129.             prices.put(10412, 12); //overloads
  130.             prices.put(10414, 10); //overloads
  131.             prices.put(10406, 8); //overloads
  132.             prices.put(14595, 55); //overloads
  133.             prices.put(14603, 40); //overloads
  134.             prices.put(14602, 20); //overloads
  135.             prices.put(14605, 20); //overloads
  136.           }
  137.         if (getPointsName() == "Donator Points") {
  138.             prices.put(1038, 25); //ahrim set
  139.             prices.put(1042, 25); //karil set
  140.             prices.put(1044, 25); //bolt racks
  141.             prices.put(1046, 25); //overloads
  142.             prices.put(1048, 25); //ahrim set
  143.             prices.put(1053, 25); //karil set
  144.             prices.put(1055, 25); //bolt racks
  145.             prices.put(1057, 25); //overloads
  146.             prices.put(11288, 25); //overloads
  147.             prices.put(14049, 25); //ahrim set
  148.             prices.put(14050, 25); //karil set
  149.             prices.put(14051, 25); //bolt racks
  150.             prices.put(14052, 25); //overloads
  151.             prices.put(1050, 25); //overloads
  152.             prices.put(14044, 25); //overloads
  153.             prices.put(14045, 25); //overloads
  154.             prices.put(14046, 25); //overloads
  155.             prices.put(14047, 25); //overloads
  156.             prices.put(14048, 25); //overloads
  157.            
  158.             prices.put(13658, 30); //ahrim set
  159.             prices.put(13360, 30); //karil set
  160.             prices.put(13662, 30); //bolt racks
  161.             prices.put(13664, 30); //overloads
  162.             prices.put(13665, 30); //ahrim set
  163.             prices.put(13666, 30); //karil set
  164.             prices.put(13667, 30); //bolt racks
  165.             prices.put(13668, 30); //overloads
  166.             prices.put(13669, 30); //overloads
  167.             prices.put(13670, 30); //ahrim set
  168.             prices.put(13671, 30); //karil set
  169.             prices.put(13672, 30); //bolt racks
  170.             prices.put(13673, 30); //overloads
  171.             prices.put(13674, 30); //overloads
  172.             prices.put(13675, 30); //overloads
  173.             prices.put(13676, 30); //overloads
  174.             prices.put(13690, 30); //overloads
  175.             prices.put(13678, 30); //overloads
  176.             prices.put(13679, 30); //overloads
  177.             prices.put(13680, 30); //overloads
  178.           }
  179.         if (getPointsName() == "Vote Points") {
  180.             prices.put(14004, 32); //ahrim set
  181.             prices.put(14005, 24); //karil set
  182.             prices.put(14006, 40); //bolt racks
  183.             prices.put(14007, 16); //overloads
  184.             prices.put(11350, 90); //ahrim set
  185.             prices.put(11352, 100); //karil set
  186.             prices.put(11353, 124); //bolt racks
  187.             prices.put(11354, 72); //overloads
  188.             prices.put(11351, 116); //overloads
  189.             prices.put(13045, 56); //ahrim set
  190.             prices.put(50463, 1); //karil set
  191.             prices.put(15018, 16); //bolt racks
  192.             prices.put(15019, 16); //overloads
  193.             prices.put(15020, 16); //overloads
  194.             prices.put(15220, 8); //overloads
  195.             prices.put(6570, 8); //overloads
  196.             prices.put(19111, 16); //overloads
  197.             prices.put(14000, 40); //overloads
  198.             prices.put(14001, 48); //ahrim set
  199.             prices.put(14002, 64); //karil set
  200.             prices.put(14003, 72); //bolt racks
  201.             prices.put(2581, 16); //overloads
  202.             prices.put(2577, 16); //ahrim set
  203.             prices.put(6585, 4); //karil set
  204.             prices.put(19335, 16); //bolt racks
  205.             prices.put(15332, 2); //overloads
  206.             prices.put(6500, 40); //overloads
  207.             prices.put(19336, 96); //ahrim set
  208.             prices.put(19337, 112); //karil set
  209.             prices.put(19338, 104); //bolt racks
  210.             prices.put(19339, 104); //overloads
  211.             prices.put(19340, 96); //overloads
  212.             prices.put(20072, 16); //overloads
  213.             prices.put(9813, 88); //overloads
  214.             prices.put(11614, 480); //overloads
  215.             prices.put(10025, 2); //overloads
  216.             prices.put(4151, 32); //ahrim set
  217.             prices.put(13754, 88); //karil set
  218.             prices.put(6199, 8); //bolt racks
  219.             prices.put(15501, 48); //overloads
  220.             prices.put(10942, 148); //ahrim set
  221.             prices.put(42608, 10); //karil set
  222.             prices.put(42637, 10); //bolt racks
  223.             prices.put(42638, 10); //overloads
  224.             prices.put(42639, 10); //overloads
  225.             prices.put(42795, 10); //ahrim set
  226.             prices.put(19713, 25); //karil set
  227.             prices.put(19714, 16); //bolt racks
  228.             prices.put(19715, 16); //overloads
  229.             prices.put(4031, 16); //overloads
  230.           }
  231.         if (getPointsName() == "Trivia points") {
  232.             prices.put(18782, 10); //ahrim set
  233.             prices.put(7956, 2); //karil set
  234.             prices.put(989, 2); //bolt racks
  235.             prices.put(2572, 3); //overloads
  236.             prices.put(15332, 2); //ahrim set
  237.             prices.put(15273, 1); //karil set
  238.             prices.put(537, 1); //bolt racks
  239.             prices.put(6500, 20); //overloads
  240.             prices.put(6199, 10); //overloads
  241.             prices.put(3486, 140); //ahrim set
  242.             prices.put(3481, 210); //karil set
  243.             prices.put(3483, 190); //bolt racks
  244.             prices.put(3485, 190); //overloads
  245.             prices.put(3488, 200); //overloads
  246.             prices.put(11906, 650); //overloads
  247.             prices.put(11884, 470); //overloads
  248.             prices.put(19422, 40); //overloads
  249.             prices.put(19413, 60); //overloads
  250.             prices.put(19416, 60); //overloads
  251.             prices.put(19425, 55); //overloads
  252.             prices.put(19437, 40); //ahrim set
  253.             prices.put(19428, 60); //karil set
  254.             prices.put(19431, 60); //bolt racks
  255.             prices.put(19440, 55); //overloads
  256.             prices.put(14000, 100); //overloads
  257.             prices.put(14001, 160); //overloads
  258.             prices.put(14002, 190); //overloads
  259.             prices.put(14003, 200); //overloads
  260.             prices.put(11716, 50); //overloads
  261.             prices.put(10025, 2); //overloads
  262.           }
  263.         if (getPointsName() == "Slayer Points") {
  264.             prices.put(13263, 250); //ahrim set
  265.             prices.put(13281, 1); //karil set
  266.             prices.put(15403, 40); //bolt racks
  267.             prices.put(11730, 50); //overloads
  268.             prices.put(10887, 65); //ahrim set
  269.             prices.put(11235, 70); //karil set
  270.             prices.put(4151, 60); //bolt racks
  271.             prices.put(15486, 40); //overloads
  272.             prices.put(15241, 65); //overloads
  273.             prices.put(15243, 1); //ahrim set
  274.             prices.put(10551, 15); //karil set
  275.             prices.put(2572, 20); //bolt racks
  276.             prices.put(2581, 35); //overloads
  277.             prices.put(2577, 30); //overloads
  278.             prices.put(6585, 15); //overloads
  279.             prices.put(11716, 20); //overloads
  280.             prices.put(18337, 10); //overloads
  281.             prices.put(11732, 25); //overloads
  282.             prices.put(15220, 40); //overloads
  283.             prices.put(15020, 40); //overloads
  284.             prices.put(15019, 40); //overloads
  285.             prices.put(15018, 40); //overloads
  286.           }
  287.         }
  288.    
  289.  
  290.     @Override
  291.     public void sellToShop(Player player, Item item) {
  292.         player.sendMessage("You can't sell to this shop.");
  293.     }
  294.  
  295.     @Override
  296.     public void buyFromShop(Player player, Item item) {
  297.  
  298.         int price = item.getCount() * getPrice(item.getId());
  299.  
  300.         final PointsShop shop = this;
  301.  
  302.         if (getPointsAmount(player) >= price) {
  303.  
  304.             DialogueManager.start(player, new Dialogue() {
  305.  
  306.                 @Override
  307.                 public int id() {
  308.                     return 1;
  309.                 }
  310.  
  311.                 @Override
  312.                 public DialogueType type() {
  313.                     return DialogueType.ITEM_STATEMENT;
  314.                 }
  315.  
  316.                 @Override
  317.                 public String[] item() {
  318.                     return new String[] {
  319.                             ""+item.getId()+"",
  320.                             "180",
  321.                             ""+item.getDefinition().getName()+""
  322.                     };
  323.                 }
  324.  
  325.                 @Override
  326.                 public boolean closeInterface() {
  327.                     return false;
  328.                 }
  329.  
  330.                 @Override
  331.                 public String[] dialogue() {
  332.                     return new String[] { "Are you sure you want to buy "+item.getAmount()+"x of this item?",
  333.                     "Price: "+price+" "+shop.getPointsName()+""};
  334.                 }
  335.  
  336.                 @Override
  337.                 public Dialogue nextDialogue() {
  338.  
  339.                     return new Dialogue() {
  340.  
  341.                         @Override
  342.                         public int id() {
  343.                             return 1;
  344.                         }
  345.  
  346.                         @Override
  347.                         public DialogueType type() {
  348.                             return DialogueType.OPTION;
  349.                         }
  350.  
  351.                         @Override
  352.                         public DialogueExpression animation() {
  353.                             return null;
  354.                         }
  355.  
  356.                         @Override
  357.                         public String[] dialogue() {
  358.                             return new String[] { "Yes, purchase item.",
  359.                                     "No, cancel."};
  360.                         }
  361.  
  362.                         @Override
  363.                         public boolean closeInterface() {
  364.                             return false;
  365.                         }
  366.  
  367.                         @Override
  368.                         public boolean action(int option) {
  369.                             switch(option) {
  370.                                 case 1:
  371.                                     shop.buyItem(player, item, price);
  372.                                     player.getPacketSender().closeDialogueOnly();
  373.                                     break;
  374.                                 case 2:
  375.                                     player.getPacketSender().closeDialogueOnly();
  376.                                     break;
  377.                             }
  378.                             return true;
  379.                         }
  380.  
  381.                     };
  382.  
  383.                 }
  384.  
  385.             });
  386.             update();
  387.         } else {
  388.             player.sendMessage("You don't have enough " + getPointsName() + " to buy this item.");
  389.         }
  390.     }
  391.  
  392.     public void buyItem(Player player, Item item, int price) {
  393.         if (getPointsAmount(player) >= price) {
  394.             if (!this.contains(item.getId())) {
  395.                 player.sendMessage("This shop doesn't seem to carry this anymore.");
  396.                 return;
  397.             }
  398.  
  399.             if (price == 0) {
  400.                 if (item.getAmount() == 0) {
  401.                     player.sendMessage("You don't have enough inventory space to buy this item");
  402.                     return;
  403.                 }
  404.                 player.sendMessage("Please contact a staff member about this issue.");
  405.                 return;
  406.             }
  407.  
  408.             setPointsAmount(player, getPointsAmount(player) - price);
  409.             player.getPA().sendFrame126(getPointsName() + ": (@red@" + this.getPointsAmount(player) + "@lre@)", 3901);
  410.             //System.out.println("Adding item: " + item.getId());
  411.             player.getInventory().add(item.getId(), item.getAmount(), "Buy from points shop");
  412.             JsonPlayerSaving.save(player);
  413.      
  414.             player.getPacketSender().sendItemContainer(player.getInventory(), 3823);
  415.             player.getPacketSender().closeDialogueOnly();
  416.         } else {
  417.             player.sendMessage("You don't have enough " + getPointsName() + " to buy this item.");
  418.         }
  419.     }
  420.  
  421.     @Override
  422.     public void valueSellItem(Player player, Item item) {
  423.         player.sendMessage("You can't sell to this shop.");
  424.     }
  425.  
  426.     @Override
  427.     public void process() {
  428.         update();
  429.     }
  430.  
  431.     public abstract String getPointsName();
  432.  
  433.     @Override
  434.     public int getPrice(int itemId) {
  435.         if (prices.containsKey(itemId)) {
  436.             return prices.get(itemId);
  437.         }
  438.         return 0;
  439.     }
  440.  
  441.     @Override
  442.     public void valueBuyItem(Player player, Item item) {
  443.         //System.out.println("Value buy: " + item.getId());
  444.         int price = getPrice(item.getId());
  445.  
  446.         String message = "The shop will sell a " + item.getDefinition().getName() + " for @dre@" + price + "</col> " + getPointsName() + ".";
  447.  
  448.         if (price == 1) {
  449.             message = message.replace("points", "point").replace("Points", "Point");
  450.         }
  451.  
  452.         player.sendMessage(message);
  453.     }
  454.  
  455.     public void setPrice(int itemId, int price) {
  456.         prices.put(itemId, price);
  457.     }
  458.  
  459.     protected abstract int getPointsAmount(Player player);
  460.  
  461.     protected abstract void setPointsAmount(Player player, int value);
  462.  
  463. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement