Skip to content

Releases: GamerDuck123/LifeStealSMP

v0.1.4-PATCH-2

30 Jul 03:37
Compare
Choose a tag to compare

This is another simple patch to fix a limitation in the config where all items in the crafting recipes had to be uppercase

mentioned in #34

v0.1.4-PATCH

28 Jul 05:10
Compare
Choose a tag to compare

This update address this issue: #31
That's it, just a simple patch

v0.1.4

06 Jul 00:28
Compare
Choose a tag to compare

TLDR

This update adds one simple feature:

  • The plugin now auto-discovers the recipe for heart canister when the player joins

How To Update

This update includes a new config option: ShouldPlayerRecieveRecipeOnJoin which should be added under defaults
Your defaults section should look something like this now:

Defaults:
  ConvertFrom: ""
  IfAtMaxHeartsGiveCanaster: false
  ShouldPlayerRecieveRecipeOnJoin: true # The new value
  ShouldWithdrawCommandExist: true
  WithdrawMininum: 20.0
  ShouldKeepLastPlayerAsDamager: true
  HowLongShouldPlayerBeLastDamager: 20
  ShouldDamageScaleWithHealth: false
  MaxHeartAmount: 60.0
  StartHeartAmount: 20.0
  ZeroedRespawnAmount: 15.0
  LoseHeartsOnNonPlayerDeath: false
  HeartsLostOnDeath: 2.0
  HeartsGainedOnKill: 2.0
  HeartsZeroedAmount: 0.0
  CommandsAfterDeath: []
  CommandsAfterKill: []
  CommandsAfterZeroing:
  - "tempban %player% 7d Try again later"
  DisabledWorlds: []

Final Notes

For any questions please leave them in the issues tab or message me on discord @ GamerDuck123#9999

v0.1.3

05 Jul 17:04
Compare
Choose a tag to compare

TLDR

This update adds 1 feature and one item for the future:

  • WorldGuard support with a custom flag
  • A simple, yet powerful framework to add more claim plugins later!

WorldGuard Support

The new WorldGuard support is simple to use, all you need to do is set the flag lifesteal-lose-heart to deny and then no one will ever lose any hearts in that region ever again!

Heres a sample of the command you need to run:

/rg flag test lifesteal-lose-heart deny

This will set the flag lifesteal-lose-heart to deny for the region test and after its set, it will be impossible to lose a heart in that region!

Important Side note

If you don't set the flag, the player will still lose hearts, so the flag only needs to be set if you DONT want the player to lose hearts

Closing

That's all for this update!

v0.1.2-PATCH

05 Jul 03:23
Compare
Choose a tag to compare

This update just removes some code that was being used in testing, that was stopping the plugin from starting, everything should work now!

v0.1.2

02 Jul 18:02
Compare
Choose a tag to compare

v0.1.2 Update

Disclaimer

I am considering this update to be highly experimental! I have had very little time to work on this update, so many features might not be fully complete, and/or may contain bugs

TLDR

This update brings the long-awaited advanced crafting system and much more such as:

  • New, more advanced crafting system (TUTORIAL COMING SOON!)
  • Support with most (if not all) Combat Logging plugins
  • PlaceHolderAPI Support
  • Heart Shard system

Config Updates:

Please update your config to contain the following updates:

Firstly, replace your old heart canaster data with the following:

HeartCanaster:
  AmountGive: 2.0
  Item:
    Material: PLAYER_HEAD
    CustomModelData: 1
    DisplayName: "Heart Canaster"
    Lore:
    - "Right click this item to get a heart"
  RecipeEnabled: true
  Recipe:
    Type: Shaped
    Contents:
      DIAMOND:
        Symbol: "*"
        CustomModelData: 1
        DisplayName: "Heart Shard"
        Lore:
        - "Right click this item to get a heart"
      GOLDEN_APPLE:
        Symbol: "-"
    Shape:
    - "***"
    - "*-*"
    - "***"
HeartShard:
  Item:
    Material: DIAMOND
    CustomModelData: 1
    DisplayName: "Heart Shard"
    Lore:
    - "Right click this item to get a heart"
  RecipeEnabled: true
  Recipe:
    Type: Shaped
    Contents:
      DIAMOND:
        Symbol: "*"
      EMERALD:
        Symbol: "-"
    Shape:
    - "***"
    - "*-*"
    - "***"

This is the new crafting system, which will have a fully tutorial on how it works, for right now it seems pretty self explanatory, for any questions I'll try to answer them on discord @ GamerDuck123#9999

Secondly, add this line to your Defaults section:

IfAtMaxHeartsGiveCanaster: false

Your defaults section should look like this now:

Defaults:
  ConvertFrom: ""
  IfAtMaxHeartsGiveCanaster: false
  ShouldWithdrawCommandExist: true
  WithdrawMininum: 20.0
  ShouldKeepLastPlayerAsDamager: true
  HowLongShouldPlayerBeLastDamager: 20
  ShouldDamageScaleWithHealth: false
  MaxHeartAmount: 60.0
  StartHeartAmount: 20.0
  ZeroedRespawnAmount: 15.0
  LoseHeartsOnNonPlayerDeath: false
  HeartsLostOnDeath: 2.0
  HeartsGainedOnKill: 2.0
  HeartsZeroedAmount: 0.0
  CommandsAfterDeath: []
  CommandsAfterKill: []
  CommandsAfterZeroing:
  - "tempban %player% 7d Try again later"
  DisabledWorlds: []

That's all for config changes! Your messages.properties should automatically update!

PlaceHolderAPI Support

Firstly, the newest feature, PAPI Support, as of right now there is, only one placeholder which is %lifesteal_hearts% which will give the player's current amount of hearts!

More Advanced Crafting

The new crafting system allows for much more customizable crafting recipes, as well as the new heart-shard item!

How it works:

The new config should look something like this:

HeartCanaster:
  AmountGive: 2.0
  Item:
    Material: PLAYER_HEAD
    CustomModelData: 1
    DisplayName: "Heart Canaster"
    Lore:
    - "Right click this item to get a heart"
  RecipeEnabled: true
  Recipe:
    Type: Shaped
    Contents:
      DIAMOND:
        Symbol: "*"
        CustomModelData: 1
        DisplayName: "Heart Shard"
        Lore:
        - "Right click this item to get a heart"
      GOLDEN_APPLE:
        Symbol: "-"
    Shape:
    - "***"
    - "*-*"
    - "***"

With the heart shard item to be similar!
Under contents you can see that there is now a multi layer system for the items, its much more simple than it looks, here's a run down:

   Contents:
     DIAMOND: ***<- REQUIRED The material of the item***
       Symbol: "*" ***<- REQUIRED The symbol that corresponds to this item in the crafting recipe***
       CustomModelData: 1 ***<- OPTIONAL The custom model data that the item has to match in order to be used***
       DisplayName: "Heart Shard" ***<- OPTIONAL The display name of the item that has to match in order to be used***
       Lore: ***<- OPTIONAL The lore that the item has to have in order to be used***
       - "Right click this item to get a heart"
     GOLDEN_APPLE: ***<- REQUIRED The material of the item***
       Symbol: "-" ***<- REQUIRED The symbol that corresponds to this item in the crafting recipe***

As you can see, an item is made up of several parts, the Material, Symbol, CustomModelData, DisplayName and Lore, the Material and Symbol are required for all items, however the CustomModelData, DisplayName, and Lore can all be left out at any time!

In this example, the recipe would nee a diamond that has the CustomModelData of 1, the DisplayName "Heart Shard" and the Lore with one line saying "Right click this item to get a heart" and if an item meets all of those requirements, it can be used to craft the item!
And for the Golden Apple, it just needs to be a regular golden apple and it'll work, no CustomModelData, DisplayName or Lore needed!

Heart Shard System

The heart shard system is just a new crafting recipe that you can add, that can be used in the HeartCanaster Crafting recipe, you can see in the new config section that the HeartCanaster uses the HeartShard as an item!

Combat Logging Plugins

Almost if not all Combat logging plugins should work now!
DISCLAIMER This has been tested very lightly, so I cannot confirm complete compatibility! DISCLAIMER

Final Regards

I apologize that this update has taken so long, I've been busy with classes while at the same time trying to enjoy my summer! I'm still trying to get out weekly updates, but they might become biweekly or monthly updates for the time being, as I just have so much going on! Thank you for understanding!

For any help, please try to contact me on discord, I will try my best to be responsive, if I don't respond, leave an issue report under the issue tab.

I also tried a new format for the update this time, please let me know how you like it!

v0.1.1 - 1.19 Update

15 Jun 04:44
Compare
Choose a tag to compare

NOTE: THIS IS A NEW REALESE ON A NEW VERSION, I CANNOT PROMISE EVERYTHING WILL WORK PROPERLY! PLEASE REPORT ANY ISSUES UNDER ISSUES TAB!

  • Now natively supports 1.19
  • /lifesteal checkhearts (player) to check a player's hearts (offline or online)
  • message.properties now auto updates after every version, I plan to do this for config.yml but its a bit more complicated
  • You can now disable the losing/gaining of hearts on a per world basis

Nothing needs to be updated in message.properties as it should auto update!

Updates needed for config.yml:

DisabledWorlds: []

under settings, your config should look similar to this:

Defaults:
  ConvertFrom: ""
  ShouldWithdrawCommandExist: true
  WithdrawMininum: 20.0
  ShouldKeepLastPlayerAsDamager: true
  HowLongShouldPlayerBeLastDamager: 20
  ShouldDamageScaleWithHealth: false
  MaxHeartAmount: 60.0
  StartHeartAmount: 20.0
  ZeroedRespawnAmount: 15.0
  LoseHeartsOnNonPlayerDeath: false
  HeartsLostOnDeath: 2.0
  HeartsGainedOnKill: 2.0
  HeartsZeroedAmount: 0.0
  CommandsAfterDeath: []
  CommandsAfterKill: []
  CommandsAfterZeroing:
  - "tempban %player% 7d Try again later"
  DisabledWorlds: []
MySQL: 
  Enabled: false
  AutoReconnect: false
  Host: 127.0.0.1
  Database: database
  Username: LifeSteal
  Password: '12345'
  Port: 3306
TAB:
  Enabled: false
  Colors:
    - "100:&a"
    - "10:&e"
    - "5:&c"
HeartCanaster:
  AmountGive: 2.0
  Item:
    Material: PLAYER_HEAD
    CustomModelData: 0
    DisplayName: "Heart Canaster"
    Lore:
    - "Right click this item to get a heart"
  RecipeEnabled: true
  Recipe:
    Type: Shaped
    Contents:
    - "*:DIAMOND"
    - "-:GOLDEN_APPLE"
    Shape:
    - "***"
    - "*-*"
    - "***"

0.1.0-SNAPSHOT

05 Jun 05:01
Compare
Choose a tag to compare
  • Fixed infinite hearts bug with /withdraw
  • End Crystals now registers as a player kill (Player who places it gets the kill)
  • Heart Canaster can now have Custom Model Data attached to it
  • Heart Canaster can now use colors, including hex codes

To update add the following value to the config under HeartCanaster:

CustomModelData: 0

In the config, HeartCanaster should look something like this:

HeartCanaster:
  AmountGive: 2.0
  Item:
    Material: PLAYER_HEAD
    CustomModelData: 0
    DisplayName: "Heart Canaster"
    Lore:
    - "Right click this item to get a heart"
  RecipeEnabled: true
  Recipe:
    Type: Shaped
    Contents:
    - "*:DIAMOND"
    - "-:GOLDEN_APPLE"
    Shape:
    - "***"
    - "*-*"
    - "***"

Also add the following line to your messages.properties

CannotBeNegativeNumber=&cNumber can't be negative

0.0.9-BUGFIX

29 May 19:55
Compare
Choose a tag to compare

This update fixes the reverse value for ShouldDamageScaleWithHealth for this version: https://github.com/GamerDuck123/LifeStealSMP/releases/tag/0.0.9-BETA

Before:
ShouldDamageScaleWithHealth: false = true
ShouldDamageScaleWithHealth: true = false

Now:
ShouldDamageScaleWithHealth: false = false
ShouldDamageScaleWithHealth: true = true

0.0.9 - Async + Major updates!

29 May 02:55
Compare
Choose a tag to compare
  • Made all database calls asynchronous
  • Added a minimum value for hearts left over /withdraw
  • Added a max amount of hearts someone can have
  • Added an option to change the amount of hearts after being zeroed out
  • All messages have been moved to messages.properties for easier updates and better load times
  • Hex color support &#(color)
  • Config internal improvements
  • Heart Canaster internal improvements
  • Death Listener internal improvements

With all of these updates, there have been major config changes as well as a new file added (message.properties)
config.yml:

Defaults:
  ConvertFrom: ""
  ShouldWithdrawCommandExist: true
  WithdrawMininum: 20.0
  ShouldKeepLastPlayerAsDamager: true
  HowLongShouldPlayerBeLastDamager: 20
  ShouldDamageScaleWithHealth: false
  MaxHeartAmount: 60.0
  StartHeartAmount: 20.0
  ZeroedRespawnAmount: 15.0
  LoseHeartsOnNonPlayerDeath: false
  HeartsLostOnDeath: 2.0
  HeartsGainedOnKill: 2.0
  HeartsZeroedAmount: 0.0
  CommandsAfterDeath: []
  CommandsAfterKill: []
  CommandsAfterZeroing:
  - "tempban %player% 7d Try again later"
MySQL: 
  Enabled: false
  AutoReconnect: false
  Host: 127.0.0.1
  Database: database
  Username: LifeSteal
  Password: '12345'
  Port: 3306
TAB:
  Enabled: false
  Colors:
    - "100:&a"
    - "10:&e"
    - "5:&c"
HeartCanaster:
  AmountGive: 2.0
  Item:
    Material: PLAYER_HEAD
    DisplayName: "Heart Canaster"
    Lore:
    - "Right click this item to get a heart"
  RecipeEnabled: true
  Recipe:
    Type: Shaped
    Contents:
    - "*:DIAMOND"
    - "-:GOLDEN_APPLE"
    Shape:
    - "***"
    - "*-*"
    - "***"

messages.properties:

NoPermissions=&cYou do not have permission to do that.
PlayerNotOnline=&c{0} is not online
NotANumber=&cThats not a valid number
HeartsSet=&cYour hearts have been set to {0}
HeartsLost=&cYou have lost {0} hearts, you now have {1} left
HeartsGained=&cYou have gained {0} hearts, you now have {1}
CantBeLeftWithLessThanOneHeart=&cYou cannot have less than {0} heart left
HeartsWithdrawn=&aYou have withdrawn {0} hearts
HasToBeWholeNumber=&cNumber has to be a whole number
WithdrawCorrectUsage=&cCorrect usage: /withdraw (amount)
MaxHearts=&cYou already have the max amount of hearts allowed!

If you find any problems please report them I'll try to get them as soon as I can