Make your server have stock to play with, different way to earn money















| Description
LuckyStock is a system that mimics virtual real stocks. The whole system is mainly using GUI to run. It means all function is operating in player inventory. The system will change each stock per day. And the plate includes stock. Each plate contains 8 stock in default. You can create more plates or stock if you want to. The stock will change per day. And then news also will affect the stock. It has 56 stock and 120 news defaults. You can make more stock or news. You can buy and sell the share or stock. The news also can be active by players' events. All transactions can be done in GUI. Very unique and you may have never seen that before.
► All the buy share is to calculate the stock with tax and handling fee
► All the buy stock is to calculate the average of all the stock in a plate with extra cost or over-ride cost
► It could create the stock by using GUI and chatbox
► It could buy or sell stock/share by using GUI
► It could edit the stock by using GUI and chatbox
► The stock includes tax, increasing tax, name, texture, lore, lore2
► the increasing tax means the tax increase per day
► the tax is the default when someone buys the share it would with a default tax
► The plate includes liquidation, when the stock in the plate is lower than the liquidation value, it will be winding up the stock.
| Features
► Stock markets have open time and close time
► All the transactions can be done in GUI
► Players could create stock in GUI and chatbox
► Players could transfer the stock to others in GUI
► Players can check out the news progress and do some action to prevent the news active or not.
► Multi-selection for selling shares in GUI
► Buy or sell stock/share in GUI
► News info GUI including all the news progress and the active news
► The news will detect the player events to choose whether active the news
► The stock owner could earn the money from tax when other players buy a share
► The stock can be over-ride owner when someone wants to buy the stock with over-ride cost
► All the stock can be bought and when the stock is winding up, It will remove the owner.
*******************************************
This plugin requires a placeholder API and Vault
*******************************************
| Permission
LuckyStock.admin ► executes the admin commands
LuckyStock.nolate ► showing the real balance for the stock
LuckyStock.nofee ► buying stock or share without handling fee
LuckyStock.notax ► buying stock or share without tax
LuckyStock.message ► showing when player bought the share
LuckyStock.search ► search player information
| Command
/stock ► opens the main GUI
/stock help ► send you a command list in the chatbox
/stock rank ► check the rank list
/stock check [StockCode] ► check the stock by using code
/stock buystock [StockCode] ► buy the stock by using code
/stock sellstock [StockCode] ► sell the stock by using code
/stock buy [StockCode] [Quantity] ► buy share by using code
/stock sell [StockCode] [Quantity] ► sell share by using code
/stock transfer [StockCode] [PlayerName] ► transfer the stock to player
requires permission LuckyStock.search command
/stock search [PlayerName] ► check the player info
requires permission LuckyStock.admin command
/stock clear [PlayerName] share ► clear player all the share
/stock clear [PlayerName] stock ► clear player all the stock
/stock set [StockCode] [Balance] ► set the stock balance
/stock set [StockCode] [Balance] late ► set the stock late balance
/stock give [StockCode] [PlayerName] ► give the stock to player
/stock permission ► get the permission list
| Placeholder
%luckystock_time% ► the detect world time with color
%luckystock_ownstock% ► the player own stock
%luckystock_sharetotal% ► the player share total
%luckystock_earn_money% ► the earned money from the player
%luckystock_creation% ► the player creation
%luckystock_max_share% ► the max share of server
%luckystock_max_stock% ► the max stock of server
%luckystock_max_tax% ► the max tax of server
%luckystock_rank_X% ► the rank X player name (X as 1-10)
%luckystock_rank_money_X% ► the rank X player balance (X as 1-10)
| Config
# ====================================== #
# █   █ █ █▀▀ █▄▀ █▄█ █▀ ▀█▀ █▀█ █▀▀ █▄▀ #
# █▄▄ █▄█ █▄▄ █ █  █  ▄█  █  █▄█ █▄▄ █ █ #
# ====================================== #
# config - for the lucky stock setting
# version should keep it auto change anyway
version: 1.0
# Plugin prefix
# details: It allows the message can have this prefix
# usage: %prefix% as above text
prefix: "&6&lLucky#ba6f13&lStock &8►"
# no one have earn money yet in rank
no_rank: "&8&lNO RECORD"
# no balance on no rank
no_balance: "&8&lNO BALANCE"
# sound effect of refreshing market
refresh_market:
  # whether have sound
  enable: true
  # sound effect in opening
  sound: BLOCK_NOTE_BLOCK_XYLOPHONE
  # sound effect in closing
  close_market: BLOCK_NOTE_BLOCK_XYLOPHONE
# Format for the stock balance (default: 9999999999999999.999)
stock_balance_format: "################.###"
# sound for rejection, for the gui button reject
reject_sound: BLOCK_NOTE_BLOCK_DIDGERIDOO
# Format the time date
time_pattern: "YYYY/MM/dd HH:mm"
# Format of share details
# Do not change this if you dont understand how it work
share_detail_pattern: "YYMMddHHmmssSSS"
# Format for share and stock code (default: 999)
format_code: "%03d"
# Format for record code (default: 99999)
record_code: "%05d"
# each stock max share
# the player can buy the maximum share of every single stock
max_share: 100
# time format, about the game time of minecraft of your detect world
time_color:
  # time 6:00 am to 5:59 pm is sun
  sun: "#fff2ab"
  # time 6:00 pm to 5:59 am is night
  night: "#e591ff"
# rank refresh time
rank_refresh_time: 300
# no quantity of record of buying stock
no_quantity: "&8No quantity"
# the selection of share of the material
selection_of_share:
  # normally showing share
  material: MAP
  # selection of the share
  select_material: FILLED_MAP
# if you sell something it would should the details
EarnMoney_format:
  # the money is earn something
  increase_color: "&a"
  # the money is earn nothing
  decrease_color: "&c"
  # haven't select anything
  no_select_color: "#ba6f13"
  # no earn money lore
  no_earn_money: "&8No earn money"
# the amplitude for selling something
amplitude:
  # none of it select
  none: "&8None"
  # the money is earn
  increase: "&2↑%value%"
  # the money is not earn
  decrease: "&4↓%value%"
# global buy share message status
global: # LuckyStock.message
  # whether enable the global message
  enable: true
  # lore setting on global lore
  lore_setting:
    # when global setting is false
    none: "&8&lNONE"
    # when enable the global status
    enable: "&2&lENABLED"
    # when disable the global status
    disable: "&4&lDISABLED"
# Variety setting
Variety:
  # the detection of the world
  # make sure the world time is not freezing and enabled
  detectWorld: "world"
  # The variety of stock.yml change time
  # Do not change this if you dont know how it work
  changeTime: 0
  # the amplitude percent of each plate
  percent_format: "&d&l%percent%%"
  # the chance will change the stock
  chance_format: "&2&l%percent%%"
  # the chance will decrease to the stock by changing
  neg_chance_format: "&4&l%percent%%"
# buy time, the market open time
buy_time:
  # market open time, better not change anything
  # default: 06:00 am
  start: 0
  # market close time, better not change anything
  # default: 21:00 pm
  end: 15000
# default stock balance
stock:
  # no earn from the stock for owner
  owner_no_earn: "&8Nothing earn yet"
  # only owner can view earn how much of the stock
  owner_not_owner: "&cOnly owner can view"
  # sell stock can get how much? (default: 50%)
  sell_stock: 50
  # sell stock type of showing record
  sell_stock_type: "&c&lSELL"
  # maximum
  maximum: 3
  # buy share increase how much? (default: 0.005%)
  increase: 0.005
  # sell share decrease how much? (default: 0.05%)
  decrease: 0.01
  # winding up of the stock
  liquidation: "#ff5959Winding up"
  # no stock code
  no_stock_code: "&8&lNONE"
  # no own stock
  no_own_stock: "&8No own stock"
  # no selection
  no_select_owner: "&8&lNOTHING SELECT"
  # no buy share or stock yet
  no_buy_total: "&8None"
  # restore the stock day
  restore_lower: 1
  restore_upper: 5
  # player info page
  showing_share: "#ba6f13&lShare"
  showing_ownStock: "#ba6f13&lOwnStock"
  # stock get no owner
  stock_no_owner:
    # the lore showing if there no owner
    loreSet: "&8No owner"
    # the lore showing if there no owner
    name: "&8&lNO OWNER"
    # the material that when the stock dont have owner
    material: PLAYER_HEAD
    # the texture of the material above
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjUwMTA4YjE1ZTU3M2RlNTk1YjViYmNkYjgyZjgzNjQ3MmQyZWYzMTZlOGFhOTFiMjQ2OGYzYWQ2ODAzN2FmYiJ9fX0="
  # no share of player
  share_format: "&8No share"
  # check real balance or late balance
  balanceOrLateBalance:
    # %balance% will show late balance
    # if player has permission (LuckyStock.noLate)
    # if set it to false means all is real balance
    enable: true
  # create stock
  create_stock:
    # the record of the type name
    type: "&7&lCREATE"
    # when the stock don't have anything
    nothing: "&8No information"
    # all changed instead of texture
    all_changed: "&2✔"
    # the texture that don't have anything
    no_change: "&4❌ &8No change"
    # the texture has been changed
    changed: "&2✔ &8Changed"
    # the name that don't have anything
    no_name: "&4❌ &8No name"
    # the lore that don't have anything
    no_lore: "&4❌ &8No lore"
    # the tax that don't have anything
    no_tax: "&4❌ &8No tax"
    # the increase that don't have anything
    no_increase: "&4❌ &8No increase &8&l↑"
    # the maximum of the lore and name
    Allow_lore_length: 30
    # increase when the players need HEX color
    Allow_name_length: 200
    # the selection of creation arrow
    selectLine: "#ba6f13► "
    # when clicking the creation stock
    selectSound: BLOCK_NOTE_BLOCK_BELL
    # max tax of create stock
    max_tax: 5
    # max increase of create stock
    max_increase: 5
    # player don't have any creation yet
    no_creation: "&8No creation"
    # how many money can create stock
    cost:
      # maximum of creation
      # if the stock is removed by winding up
      # it will decrease the creation of player
      max: 2
      # average or default
      # average as all stock average balance
      # default needs to have value
      type: average
      # only work for the type is default
      value: 30000
    # the default setting of the create stock
    # better not change anything if you dont know how it work
    default:
      lore:
        - "&7Select &8► &8&l[&e&lCLICK&8&l]"
        - "&8%lore%"
        - "&8%lore2%"
        - "&7Code &8► &b&l%code%"
        - "&8► Information &8◄"
        - "&7Tax &8► %tax%%increase%"
        - "&7Owner &8► &b&l%owner%"
        - "&7Balance &8► &e%balance%"
        - " &8⌚ Change per day"
      info_lore:
        - "&8%lore%"
        - "&8%lore2%"
        - "&7Share &8► #ba6f13&l%share%"
        - "&8► Information &8◄"
        - "&7Tax &8► %tax%%increase%"
        - "&7Owner &8► &b&l%owner%"
        - "&7Balance &8► &e%balance%"
        - " &8⌚ Change per day"
        - ""
        - "&8&l[&a&lLEFT&8&l-&e&lCLICK&8&l] to enter %showing%"
  # buy stock
  buy_stock:
    # the record of the buy stock
    type: "&f&lBUY"
    # format
    extra_cost_format: "&a&l%extracost%%"
    override_extra_cost_format: "&d&l%overridecost%%"
    # if the extra cost percentage is 0%
    no_extra_cost: "&8No extra cost"
    # if the override extra cost percentage is 0%
    no_override_extra_cost: "&8No override extra cost"
    # type
    extra_type: "&a&lExtra"
    override_type: "&d&lOverride"
  # value of handling fee
  handling_fee: #LuckyStock.noFee
    enable: true
    # percentage of handling fee (default: 5%)
    value: 5
    # format of handling fee
    format: "&d&l%handlingfee%%"
    # no handling fee message
    no_handling_fee: "&8No handling fee"
# select stock
select:
  # the select material
  material: PLAYER_HEAD
  # the texture of above material
  texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTljZGI5YWYzOGNmNDFkYWE1M2JjOGNkYTc2NjVjNTA5NjMyZDE0ZTY3OGYwZjE5ZjI2M2Y0NmU1NDFkOGEzMCJ9fX0="
  # nothing select showing
  no_select: "&8Nothing select"
  # no quantity for buying or selling
  no_balance: "&8No quantity"
  # buy and sell session
  buyAndSell:
    # record of buy and the gui showing
    buy: "&a&lBUY"
    # record of sell and the gui showing
    sell: "&c&lSELL"
    # nothing select
    no_select: "&8Nothing select"
    # dont have quantity
    no_quantity: "&8None"
# news setting
news:
  # message enable
  message:
    # whether showing the title message
    title: true
    # whether showing the details message
    detail: true
  # refresh the list
  refresh_time: 180
  # news checking time (second)
  # default 5s check all action condition
  # better not change lower due to overrun
  checkingTime: 5
  # random news
  # for checking how many random news will check per day
  minimum_random: 1
  maximum_random: 3
  # the maximum news per day
  max: 9
  # the news will showing in below time (Using LONG)
  # if you dont know the time may check out this page (https://minecraft.fandom.com/wiki/Daylight_cycle)
  time_lower: 1000
  time_upper: 18000
  # dont have any news yet
  active:
    # the message showing on GUI
    no_one: "&8It doesn't have news yet"
  # GUI setting
  gui_setting:
    # the news of all the news showing material
    material: MAP
    # the news of active news
    active_material: FILLED_MAP
    # selection news (only for admin)
    select_material: FILLED_MAP
  # the lore of the news
  lore_setting:
    # random stock
    random_stock: "&c&lR&6&lA&e&lN&a&lD&b&lO&d&lM"
    # all of plate
    all_plate: "&f&lALL"
    # random of plate
    random_plate: "&c&lR&6&lA&e&lN&a&lD&b&lO&d&lM"
    # type setting
    type:
      # if the type is positive
      positive: "&2&lPositive"
      # if the type is negative
      negative: "&4&lNegative"
    # progress format
    no_progress: "&8&l[ &7&lNo Progress &8&l]"
    # progress setting
    progress:
      # random
      random: "#d92727&lR#ddbb4a&lA#ced131&lN#48c948&lD#41c6c6&lO#ce3bce&lM"
      # the length of the progress
      length: 60
      # the character of the progress
      char: "|"
      # active amount of the progress
      active: "&2"
      # non active amount of the progress
      non_active: "&8"
      # the format of the progress
      format: "&8&l[ %progress% &8&l]"
    # the message of thew news
    # better not change anything in GUI
    content:
      # the news list for all news
      message_line_color: "&7"
      # the news list for active news
      active_message_line_color: "&8"
    # create stock setting
  create_news:
    # default title
    default_title: "&6&lL#ba6f13&lS &8► %plate% &8► %name%"
    # select line
    # the selection of creation arrow
    selectLine: "#ba6f13► "
    changed: "&2✔ &7"
    no_info: "&4❌ &8No Information"
    no_action_lore: "&8Select the action then will show"
    # when clicking the creation stock
    selectSound: BLOCK_NOTE_BLOCK_BELL
    # the action type of the news
    type:
      PLACE: "&8Only need to change the block(s) and quantity"
      BREAK: "&8Only need to change the block(s) and quantity"
      SLAIN: "&8Only need to change the target(s) and quantity"
      RIDE: "&8Only need to change the target(s) and quantity"
      INTERACT: "&8Only need to change the block(s) and quantity"
      DROP: "&8Only need to change the item(s) and quantity"
      PICKUP: "&8Only need to change the item(s) and quantity"
      USING: "&8Only need to change the item(s) and quantity"
      TIME: "&8Need to change the checkTime, cancelAction and more"
      VILLAGER: "&8Only need to change the quantity"
      RANDOM: "&8Nothing need to change in action details"
# tax setting
tax: #LuckyStock.noTax
  # set the stock lore to owner placeholder
  # if owner is null will return to player placeholder
  # it may needs to restart the server till the placeholder may getting error
  # you also may need to change the permission plugin setting for enable something
  # only effect in each plate
  placeholder_owner: false
  # max tax of share
  # it will not allow to increase more (default: 35%)
  max_tax: 35
  # if stock owner is null
  owner: "&8No owner"
  # whether have tax (default: true)
  enable: true
  # the lower
  lower: 0.01
  # the upper
  upper: 10
  # time for add the tax every day (default: 6am)
  # this is real time (HOUR:MINUTE:SECOND) 24HR
  time: "06:00:00"
  # no tax message
  no_tax: "&8No tax"
  # tax format
  format: "&6&l%tax%%"
  # tax increase format
  increase_format: "&8&l↑%increase%%"
All the config files can be found in the discord
If you find any issues, please feel free to go support discord, click below link to enter
| License
Once you download the plugin, you accept the following terms of use:
• No refund
• You will not be able to redistribute the plugin. and or its code
• You cannot upload the plugin to another forum or page, without the developer's permission.
• You are not allowed to decompile the plugin or use its code in any project without permission from the developer.