Releases: GamerDuck123/LifeStealSMP
v0.1.4-PATCH-2
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
This update address this issue: #31
That's it, just a simple patch
v0.1.4
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
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
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
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
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
- 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
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!
- 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