BuffShop

Plugin is under development.
So it's more like only demo of it :)

This plugin allows you to sell potion effect (aka buffs) for items and/or money.

Features

Player can buy buffs using shops with special inventory GUI.
Shops are very customizable, you can even link shops, use any item you want, block closing GUI (it will be closed after purchase), prices for: opening GUI, buffs, links to other shops.

Most of features works good, but plugin can be hard to configure, and that is next milestone -> make it simple, by using chat or/and GUI editors.

Each buff contains one or more effects, each of that effects can be configured.
Example buff file:

buff: # don't touch
  ==: BS_Buff # don't touch
  name: EG_Digger # name of buff, player will never see it, but you will use it. Must be this same as file name.
  effects: # section of effects
    digSpeed: # name of effects, it's only used by plugin in some parts of code.
      ==: BS_Effect # don't touch
      overrideType: POWER # Can be: ALLOW, DENY, POWER , more on wiki
      buffType: PLAY_TIME # PLAY_TIME or FIXED_TIME
      onDuplicate: MERGE # Can be: MERGE, OVERRIDE or LEAVE
      power: 3 # power of effect, minecraft count it from 0, so 0 is like 1.
      time: 6m # time of effect, time like in essentials eg: 3d5h30m -> 3 days, 5 hours, 30 minutes.
      effectType: FAST_DIGGING # name of effect http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.code
      onDie: DO_NOT_REMOVE # REMOVE or DO_NOT_REMOVE
    vision: # next effect..
      ==: BS_Effect
      overrideType: DENY
      buffType: FIXED_TIME
      onDuplicate: OVERRIDE
      power: 0
      time: 30m
      effectType: NIGHT_VISION
      onDie: REMOVE

After first run plugin will generate example shop, so you can see how that works.

Some screenshots of sample Shops/GUIs:
http://imgur.com/a/7bTui

Commands

For now, only 5 commands are available:

  • /OpenBuffShop - to open shop.
    Permission: gotofinal.buffshop.openshop (op)
    /openbuffshop <shop name> - open selected shop
    Permission: gotofinal.buffshop.openshop.any (op)​
  • /BuyBuff - open default shop​
    Permission: gotofinal.buffshop.buybuff (default)
    /BuyBuff <player> - buy buff for other player (gift, needs confirm)
    Permission: gotofinal.buffshop.buybuff.gift (op)
  • /BuffConfirm <confirm/refuse> <player> - confirm or refuse gift.
  • /GiveBuff <buffname> <player> - force give buff to selected player.
    Permission: gotofinal.buffshop.givebuff (op)
  • /buffshopreload - save/load selected parts of plugin.

Configuration

Configuration for now can be hard, but that will be changed.
Plugin will generate main configuration file like that:
http://pastebin.com/YiFaqw7j

addDefaultEffects -> if true, plugin will add 2 sample shops.

auto-save_players -> in minutes. 0 -> no auto-save

auto-save_effects -> in minutes. 0 -> no auto-save. Auto-save of effects isn't needed if you using normal version of that plugin.

taskSpeed -> each x ticks plugin must check active buffs of every player. (will be changed to something less-laggy, like checking x player in y ticks)

defaultShop -> Shop that will be open if someone type /openbuffshop command.

Plugin will also generate 5 folders: buffs, items, prices, shops and players.

Sample item files:
http://pastebin.com/CCF3kAsy

Sample price files:
http://pastebin.com/bniCbGET

Sample shop files:
http://pastebin.com/xXTHX57M
Notice border options! You can easily set border to GUI, selected item, and fill other empty slots with selected items.

What mean "overrideType"?
If you get other effect, from potion or something, your bought effect can be overridden, but sometimes that isn't good.
So you can select:
ALLOW -> can be always overridden
POWER -> only if new effect is better. (stronger, or longer)
DENY -> nope, it can't be overridden.

What mean "onDie"?
Effect can by "REMOVE"-d on die, or not "DO_NOT_REMOVE"

What mean "onDuplicate"?
If player will buy this same buff more than one time, plugin will try merge it, but you can configure hoe each effect of buff should be merged:
MERGE -> times will be added.
OVERRIDE -> time will be overridden by new effect.
LEAVE -> new effect will be ignored.

What mean "buffType"?
PLAY_TIME -> plugin will only count online-time, so if player quit effect will be paused.
FIXED_TIME -> time is counted even if player is offline (or even server)

TODO List

  • Make configuration easier.
    • Some chat builders.
    • JSON editor (clicking on text)
    • Maybe some GUI selectors.
    • Editing, adding, removing.
    • Command to see all shops/buffs/prices
    • Command to sell all items, even that needed in prices with ability to get copy of clicked item.
  • Make item costs more advanced.
    • Add enchants range, like diamond sword with enchant all damage above 3 level.
      • Maybe even some way to more "logic connections" like all damage can be below 3 if other selected enchantment is above X
      • Maybe that can be made using "weight", each enchantment had own weight (configurable for every item), and sum of weight must be within selected range.
    • Support for meta-data, like potions with selected effects, maps, skulls of players, etc...
  • Make better description and wiki.
    • Yeach, this plugin need wiki!
  • Add source code to github.
    • Will be added when I decide with code for configuration I want use. I don't want add code, and change 20% of it, in every commit :D
  • Add API
    • Yep! Adding own button-types, own actions, own buffs, everything is possible ;3 You can easily make GUI shops using that plugin :D
  • More epic options.
    • Code of that plugin can much more than just selling buffs, it can selling xp, items, special-actions like command execute.
    • But first I will finish other parts :D

Yeach, this description isn't good now :D
It will be better!

Donations... soon....

And sorry for my English!


Comments

Posts Quoted:
Reply
Clear All Quotes

About This Project

  • Project ID
    86921
  • Created
    Nov 23, 2014
  • Last Released File
    Nov 30, 2014
  • Total Downloads
    1,485
  • License

Categories

Members

Recent Files