ULTIMATE ▶ PlayerSkills2 ◀ | Give players a way to upgrade their character 1.6

An easy to use but complex way for players to upgrade skills.

  1. Kate
    [​IMG]
    [​IMG]
    This plugin was built and programmed against the 1.8 API. This plugin was tested on a Spigot server running 1.14.4.

    If this plugin is native to a version pre-1.13, it will not natively support 1.13+ blocks and items.
    Code (Text):
    VERSION COMPATIBLE
    1.14.x Yes (T)
    1.13.x Yes (*)
    1.12.x Yes (*)
    1.11.x Yes (*)
    1.10.x Yes (*)
    1.9.x Yes (*)
    1.8.x Yes (A)
    1.7.x No

    KEY:
    * = the plugin is VERY LIKELY to work, but not confirmed
    # = the plugin has reduced features
    A = native version
    T = tested
    Please note: if your version is not listed and the latest version listed is compatible, the plugin is likely to work, but not confirmed.
    [​IMG]
    Why premium? PlayerSkills2 is premium to help motivate myself with maintaining the plugin, during a time where I am very busy (exams). While I love my original plugin, PlayerSkills, it has fallen far beyond repair and upon relfection the coding practices I used back then was awful. PlayerSkills2 is a fresh new start for PlayerSkills and I will provide a lot support and future updates for this plugin.

    Right off the bat, there are several performance improvements to PlayerSkills and three new skills. I expect to add more skills in the future. The redesign of the code allows me to be flexible with the amount of skills I can add to the plugin and if you can code, you could even add your own custom skills.

    If you do not wish to pay for this premium version of the plugin, you are more then welcome to download the old PlayerSkills. However, please be noted that I no longer offer support for that plugin.

    [​IMG]
    PlayerSkills2 will allow players to purchase skill points using XP to invest in skills. The skills are presented in a simple intuitive menu.

    PlayerSkills2 has eight skills your players can choose from:
    • Strength
    • Resistance
    • Dodging
    • Criticals
    • Archery
    • Gluttony
    • Health
    • Laceration
    [​IMG]
    (image up-to-date as of 1.0)
    Strength:
    Strength is how much damage each melee attack inflicts on opponents.

    Resistance:
    Resistance will dampen incoming damage from all sources.

    Dodging:
    Dodging gives a random chance of nullifying an entire attack.

    Criticals:
    Criticals are a random chance of inflicting a critical shot, which is150% (by default) of the original attack.

    Archery:
    Archery is how much damage each ranged attack inflicts on opponents.

    Gluttony:
    Gluttony allows a player to increase food intake from a single item. For example: a steak could increase a players food level by 8 instead of 4 with a gluttony level of 2 (by default).

    Health:
    Health gives players extra hearts.

    Laceration:
    Laceration is a random chance of causing an enemy to bleed. When an enemy is bleeding, they lose health over a set amount of time (by default, 1 heart every 2.5 seconds for 8 cycles).

    This plugin was tested on both 1.8 and 1.13. It is unlikely that it will not work for versions in-between but I cannot provide any guarantee.
    Should it not work for any versions in between I will do my best to fix this.

    The purchasing of skill points can be done in two ways:
    • statically; or
    • dynamically
    Statically: the price of skill points will not change. It will always be what it is defined in the config.
    Dynamically: the price of skill points will change depending on how many were previously bought. This can be customised.

    [​IMG]
    • /skills [/skill, /s] - opens the skills gui
    • /skillsadmin [/skilladmin, /sa] - provides an admin with control over players skills
    [​IMG]
    • playerskills.command
    • playerskills.admin
    [​IMG]
    To install, you should do the following:
    • stop the server;
    • move PlayerSkills2 to the plugins/ folder;
    • start the server.
    Do not reload if it is the first time the plugin is being installed.

    PlayerSkills2 offers a very flexible configuration. The comments in the file should assist you with configuring the skills, but if you are still stuck then you're more than welcome to join my Discord server for help (scroll to the bottom for an invite).
    Code (YAML):

    # | =================================================== |
    # | Thank you for purchasing and downloading my plugin: |
    # | PlayerSkills2 |
    # | Created by lmbishop |
    # | |
    # | =x= |
    # | |
    # | File comments should help |
    # | you with the config. |
    # | |
    # | =x= |
    # | |
    # | Have Discord & need help? |
    # | https://www.discord.gg/8amrJnX |
    # | =================================================== |

    # this is the section where each skill can be customised and how they look in the GUI
    skills:
    strength:
    display:
    name: "&cStrength Overview"
    type: IRON_SWORD
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill increases damage dealt to other players."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cDamage dealt: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 10
    gui-slot: 11
    damage-increment: 6 # every level, damage will increase by 6%
    resistance:
    display:
    name: "&cResistance Overview"
    type: IRON_CHESTPLATE
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill decreases damage received."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cIncoming damage: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 10
    gui-slot: 12
    damage-drop: 3 # every level, 3% of damage will be dampened
    dodge:
    display:
    name: "&cDodge Overview"
    type: SUGAR
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill gives a chance to completely dodge attacks."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cDodge chance: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 6
    gui-slot: 13
    percent-increase: 2 # every level, 2% more chance to dodge attacks
    criticals:
    display:
    name: "&cCriticals Overview"
    type: BLAZE_POWDER
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill gives a chance to deal a critical (150%) shot."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cCritical chance: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 3
    gui-slot: 14
    percent-increase: 4 # every level, 4% more chance to deal criticals
    critical-multiplier: 1.5 # 150% damage
    archery:
    display:
    name: "&cArchery Overview"
    type: BOW
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill increases damage dealt using bows."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cBow damage dealt: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 10
    gui-slot: 15
    damage-increment: 6 # every level, damage will increase by 6%
    gluttony:
    display:
    name: "&cGluttony Overview"
    type: WHEAT
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill increases the amount of food ingested from a single item."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cFood heal amount: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 4
    gui-slot: 21
    percent-increase: 50 # every level, food intake will increase by 50%
    health:
    display:
    name: "&cHealth Overview"
    type: APPLE
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill increases the amount of health you have."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cExtra hearts: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 5
    gui-slot: 22
    extra-health-per-level: 1 # every level, 1 heart (2 HP) is added
    lacerate:
    display:
    name: "&cLacerate Overview"
    type: REDSTONE
    lore:
    - "&eLeft-Click &7to upgrade this skill using &e1 &7point."
    - "&7This skill increases the chance of making an enemy bleed."
    - "&7Level: &e{level}&7/&e{max}&7"
    - " "
    - "&cCut chance: "
    - " &e{prev} &7 >>> &e{next}"
    config:
    max-level: 4
    gui-slot: 23
    percent-increase: 4 # every level, chance to bleed will increase by 4%
    bleed-cycles: 8 # the amount of times a player will lose health from a single cut
    bleed-interval: 50 # the interval (in TICKS, 20 = 1 second) of bleed cycles
    bleed-damage: 2 # the amount of damage a bleed cycle will do (HP, 2 = 1 heart)

    # You can disable specific skills from being registered here.
    disabled-skills:
    - "some-skill-id"

    ###### Developers ######
    # For those registering their own custom skills, they can be added to the config using the following:
    #
    # skill-config-name:
    # display:
    # name: "Skill Overview"
    # type: SOME_ITEM
    # lore:
    # - "Some string list, where {prev} is replaced by the return value of getPreviousString() and {next} is replaced with getNextString()"
    # config:
    # max-level: 1 # MUST BE PRESENT
    # gui-slot: 1 # MUST BE PRESENT
    # # any other keys can go here, they can all be accessed by calling getConfig() (returns HashMap<String, Object>)
    #
    # You can add your own skill by extending the Skill class and registering it using the method in the PlayerSkills main class.
    # They are automatically registered with the Bukkit event API.
    ########################

    gui:
    title: "Skills"
    size: 27
    background:
    name: " "
    type: "STAINED_GLASS_PANE:7"
    other:
    # if you really wanted to, you could add other pseudo-items here to the gui - however you must not remove "points" or "reset"
    info:
    slot: 3
    name: "&cInformation"
    type: "PAPER"
    lore:
    - "&cSkill points &7can be bought using XP or money."
    - "&7These points can be used to upgrade &cskills."
    - "&7Each skill has its own individual perk."
    points:
    slot: 4
    name: "&cSkill Points"
    type: "BOOK"
    lore:
    - "&7You have &e{points} &7points."
    - "&eLeft-Click &7to purchase a skill point for &e{price}&7."
    - " "
    - "&7XP: {xpbar}"
    reset:
    slot: 5
    name: "&cReset"
    type: "TNT"
    lore:
    - "&eLeft-Click &7to completely reset your skills."
    - "&7This costs &e1 &7skill point."
    - "&7Other skill points invested in existing skills will be refunded."
    - " "
    - "&cDANGER: &7This is irreversible."

    points:
    price: 1 # base price per level
    reset-price: 1 # it will cost 1 skill point to reset all skills
    refund-skill-points: true # when skill points are reset, all points spent in skills will be refunded
    funding-source: XP # accepts either VAULT or XP
    dynamic-price:
    enabled: false # if true, the price will increase based on total skill points bought and spent
    price-increase-per-point: 1 # for every skill point bought, the price of the next will increase by 1 level

    options:
    logging:
    verbose: false

    # Configure messages
    messages:
    critical: "&a*** CRITICAL HIT ***"
    dodge: "&a*** ATTACK DODGED ***"
    bleeding-enemy: "&a*** ENEMY BLEEDING ***"
    bleeding-self: "&c*** YOU ARE BLEEDING ***"
    Custom Skills
    You can create your own custom skills if you can code. A simple explanation of this is:
    • extend the class "Skill" - the constructor methods should be (plugin, string, string)
    • you can obtain an instance of the PlayerSkills plugin using Bukkit.getPluginManager().getPlugin("PlayerSkills2");
    • add listeners, etc
    • you can get a SPlayer using SPlayer.getPlayer(uuid);, this will provide information on the player
    • register the skill using the main class
    Feel free to join my Discord for more help with this.

    [​IMG]
    [​IMG]

    [​IMG]
    [​IMG]
    By purchasing PlayerSkills2, you are agreeing to not:
    • redistribute this plugin to unlicensed users;
    • ask for a refund or chargeback; and