ServerWarehouse

Discussion in 'Plugin Requests' started by CryoCrafter, Apr 10, 2020.

Thread Status:
Not open for further replies.
  1. Name: ServerWarehouse

    Version: Bukkit/Spigot/Paper 1.14.4

    Basic description: Admins create sell / buy (one of both categories ONLY) shops which can be accessed via a GUI. For each item (supports custom items with nbt data etc), there is a server stock which is updated if items sold / bought from server. Prices are dynamic, high stock = low sell / buy prices, low stock = high sell / buy prices. Events can be configured with random times that do random actions (stock manipulation, price fluctuation) to a random items stock.

    (Info: Stock refers to the amount of items that are in the warehouse)

    Details:
    + Sell shops (Players sell to Warehouse):
    - Each item that is configured to be sold has a stock
    - This stock is reduced every x(reduce_time) ticks by a random amount between xmin(reduce_min) and xmax(reduce_max) (x = configurable in config)
    - If a player sells some items to the server, the stock is increased by the same amount that he sold
    - There is a curve, describeable with y(price)=1/x(stock)*p(median, configurable per item)
    - According to the curve, the price of selling the item is updated every x(update_ticks) ticks, configurable in config for all items at once
    - If this curve is seen as a mathematical curve, x refers to the amount of items in stock and y refers to the price of the items
    - If the stock hits 0, it will use the max_price (configurable in config) as price, since 0 is undefined with that graph

    + Buy Shop
    - Its the exact same as the Sell shops, just instead of decreasing the stock every reduce_time, it increases it every x(increase_time) by a random amount between xmin(increase_min) and xmax(increase_max)
    - Players can only buy as many items as are in stock, if the stock hits 0, they get a configurable message

    + Events
    - A configurable, expandable list of events with the following settings:
    eventname:
    event_type: # sell or buy, refers to which shop category it works on
    event_amountmin: #amount to be added at minimum to the stock, can be negative
    event_amountmax: #amount to be added at maximum to the stock, can be negative
    event_medianmin: #amount to be added at minimum to the prices median, can be negative
    event_medianmax: #amount to be added at maximum to the prices median, can be negative
    event_chance: #integer, any number, only full numbers, chance is (amount of all event_chance in event_type combined) / (event_chance), chance of occuring of this event in case of event
    event_message: #broadcast to send if the event occurs, supports placeholders (event_amountchanged) and (event_medianchanged)
    event_medianundo: #time in seconds until the change to the median is undone (reverted back to normal median)
    - option for "event_durmin" and "event_durmax", set min and max time until a random event occurs after the last one

    + Menu:
    - If you do /market, a 3 line menu opens with black stained glass as background and 2 buttons, one being an emerald block called "Buy Items"(green, bold), redirecting to the buy items menu and a redstone block called "Sell Items"(red, bold)
    - Each of the 2 menus shows all the different items that are for sale, sorted by price from top left to bottom right (Highest price in sell menu is top, lowest price in buy menu is top)
    - The items displayed have the exact same data (lore, name, custom_model_data) as the item thats being sold/bought
    - The item list is updated every minute, according to the new prices
    - If you click on the item, you open another menu showing the current price of the item, updating once per x(update_ticks) ticks and the relative amount it increased to the price it had one minute and one hour ago in %. The minute price change updates every second, the hour price change every minute, if thats easier to configure, if not, all prices update at the same x(update_ticks) ticks rate.
    - In the same menu, there are 3 buttons at the bottom, all gold blocks with different amounts of items being sold / bought if clicked, one is one item, second is 10 items, third is 64 items
    - If they dont have enough money / items to make the transaction, they get another configurable message

    I know, this is a huge plugin request, but I think this can become an extremely useful resource for everybody who is looking for such stuff.

    Thank you for reading this, if you have read everything and I would love if somebody could make this request for me <3
     
Thread Status:
Not open for further replies.

Share This Page