⚔ Heroes Premium ⚔ BEST MINECRAFT & SPIGOT RPG PLUGIN EVER icon

⚔ Heroes Premium ⚔ BEST MINECRAFT & SPIGOT RPG PLUGIN EVER -----

The best class, race and skill Minecraft RPG plugin for Minecraft servers




Patch Notes
Version 1.10.9
  • Merged 1.10.9-update branch into dev.
  • Updated Internal Version: Ensured internal versioning reflects the latest updates for consistency.
Version 1.10.8 Hotfix
  • Merged dev-1.10.8_hotfix branch into dev: Integrated critical fixes into the development branch.
General Improvements and Fixes
  • Liquid Handling Enhancements: Added considerations for liquid mechanics, improving functionality where liquids are involved.
  • Import Fixes: Resolved issues with import statements to ensure smoother integration and compatibility.
  • Skill Utility Methods: Added a new non-colliding utility method to enhance skill functionality and prevent conflicts.
  • Attribute Updates: Updated and added friendly attribute names to align with recent naming changes, improving clarity and usability.
  • Block Transparency Adjustment: Removed transparent blocks again, but retained references within the file for potential future use.
----------, Jan 9, 2025

THIS IS CONSIDERED AN ALPHA VERSION AND NEEDS TESTING/FEEDBACK.

CUSTOM SKILLS WILL NOT WORK TRY OUR NEW SCRIPT SKILLS SYSTEM INTEGRATED WITH MM!

==-- | 1.10.8 PREMIUM | --==

This is a MAJOR update that features MANY changes to internal code and functions due to the great number of API changes brought by 1.20.6 and above. Please make sure to update your skills as the OLD format may not work as intended!

With this update we have unfortunately removed support for versions 1.15 and below. This comes after we found a majority of our user base no longer uses these versions and it was becoming increasingly difficult to maintain the central codebase across all these different versions. 1.16.5 and above are still fully supported.

As always, please let us know if you have any issues with the latest update.

-- Supported Minecraft Versions --
1.16.5, 1.17.X, 1.18.X, 1.19.X, 1.20.X, 1.21, 1.21.1

-- Changes --
  • Removed version handlers for all versions below 1.16.5
  • Added stamina drain and mana drain stats as possible stats for MMOItems support
  • Updated the code that checked for reagent potion types. A new format will now be used so old configurations that used reagents with potion types may not work anymore. The new format is <material>:<potion_type>, where material is either potion, splash_potion, or lingering_potion.
  • Improved general reliability of skill casting and under what circumstances a skill will be cancelled and if resources are taken or not.
  • A number of technical changes which should hopefully improve consistency and performance across the board
-- Bug Fixes --
  • Corrected issues that would occur when using newer versions due to version-specific entity names and values.
  • Passthrough blocks (blocks which can be walked through such as tall_grass or crops) were previously manually added to a list and checked during most skill casts. Due to updating to 1.16.5 we can use an in-built registry for this which should mean more accurate skill casts and faster updates in the future
  • Many minor fixes to version incompatible things, improving consistency of internal functions.
  • Modified the translations slightly for the attribute menu. Now attribute menu will show the 'allocated points', meaning the points you've already committed, then the 'pending points', the points you've pended but not confirmed yet. And then the 'total points' which will include the allocated points in addition to any points from items such as MMOItems. Hopefully this should clarify issues.
-- Technical Changes (For Developers) --
  • Updated project Java version to 11

  • Added a number of version friendly handlers for the once used enums that are now implemented final static variables as of Spigot 1.20.6. We will use these in the core code instead of the classic Particle.CLOUD or Enchantment.DAMAGE_ALL for example. The following wrappers that were added are listed below;
FriendlyParticle FriendlyEnchant FriendlyPotionType

  • HeroesDamageType is another friendly wrapper that was added to account for the new 'DamageType' API that was added in Spigot 1.20.6. Heroes previous way of checking for damage involved manually calling an EntityDamageByEntityEvent, since the constructor for this event is deprecated and marked for removal, we have been forced to adopt the new API which involves calling LivingEntity.damage(Entity, DamageSource), where DamageSource takes a unique DamageType parameter among other sources. The HeroesDamageType is a wrapper which automatically is used to provide the correct damage type regardless of what version of Minecraft the plugin is running on. For now, simply know that when calling damage entity functions through Heroes, try to use HeroesDamageType instead of the previous EntityDamageEvent.DamageCause
  • Since we no longer call an EntityDamageEvent ourselves to check for damage conditions, manual checks for Integrations such as in WorldGuard, Townships or anything else are now involved in the DamageCheck functions.
----------, Oct 31, 2024

Heroes Development Update

Hello everyone! Here's a summary of the recent changes and updates made to Heroes:

New Features & Improvements:

  • Placeholders Added: Added latest placeholders for better compatibility and features.

  • Casting Bar Improvements: Fixed the flickering issue with the casting bar during active cooldowns.

  • New Abilities: Implemented new abilities with Nash scripting, improving overall flexibility.

  • Attributes Expansion: Expanded attributes to include new placeholders for health and max health values.
Bug Fixes:

  • Cooldown Messages: Fixed recurring "no active cooldowns" messages that were incorrectly displayed.

  • Exception Handling: Added better exception catching and debugging for smoother gameplay experience.

  • Casting Fixes: Fixed right-clicking breaking the casting warmup process.

  • Interaction Fixes: Resolved issues causing incorrect interactions and prevented unnecessary actions when players were offline.
General Updates:

  • Permission Nodes: Added new permission nodes for level loss immunity and experience loss immunity.

  • Boost Config: Boost configuration moved to boost.yml for easier access and management.

  • Admin Command: Added an AdminLevelUpCommand.java to streamline admin level-up commands.
These updates aim to enhance both the user experience and the behind-the-scenes reliability of Heroes. We appreciate your continued feedback and support as we work to make Heroes even better.

——— If you have any questions or issues, please feel free to reach out to us. Happy adventuring!
----------, Oct 18, 2024


This is a beta build and may have some bugs but we feel it is stable for testing and should be okay. A skill update is coming and more work is being done for support for 1.21.

Backup translations.yml for some updates.

Please report any issues you may have with this version.


----------, Jul 17, 2024

----------, Jun 7, 2024


Simple as, just grab the new public skills and it should fix some random issues with several.
----------, Apr 29, 2024

Fixes for 1.20.4 server oddities and some client crashes
----------, Jan 18, 2024

This update addresses some internal issues with 1.20.4 and some client issues with 1.20.4 as well.

It also addresses some translation bugs that have been present amongst other things.


  1. Jan 12, 2024
  2. Jan 11, 2024
----------, Jan 17, 2024

This will fix Heroes to load when not using MM, apologies and thanks for the reports!
----------, Jan 9, 2024

  1. ==-- | 1.10.3 PREMIUM | --==
    This is a minor update which fixes a number of bugs, including long-standing issues with the CombatEffect in particular. As always, if you encounter any further issues please be sure to report it on the discord.
    -- Supported Minecraft Versions --
    1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X, 1.19.X, 1.20.X
    -- Bug Fixes --
    • Fixed a NullPointerException which spammed the console when right-clicking
    • Fixed some minor issues due to outdated API
    • Fixed an issue with equipping items.
    • Fixed a number of issues with various skills which prevented them from loading. Please update your skills with the new skill pack!
    -- Changes --
    • Added more tab-completions for a number of commands. Majority of commands using classes such as admin class or prof or choose now have tab completion suggestions
    • Materials in translations should now use the localised name of the item rather than translating directly from English
    • Attributes now have translatable names directly rather than just the title. Therefore a new option was added called 'attributes.title' which allows you to specify this format. This should be automatically updated.
    • The /hero stats command is now fully translatable
    • Completely rewrote way that the Combat timer is handled by Heroes. Now it tracks enemies on an enemy by enemy basis, therefore leading to increased accuracy in when a player is truly out of combat. Additionally, these checks are made asynchronously hence a minor performance gain.
    • Added the following placeholders; %heroes_primary_exp%,%heroes_primary_exp%,%heroes_primary_max_exp%,%heroes_secondary_exp%,%heroes_secondary_max_exp%,%heroes_race_exp%,%heroes_race_max_exp%. Also added a placeholder for each attribute which is given by heroes_<attribute>.
----------, Dec 21, 2023

Optional percent based strength increaser
combat but fixes
various other quality of life improvements
----------, Dec 14, 2023

Read the entire changelog

==-- | 1.10.2 PREMIUM | --==

This is a minor update to fix some further bugs and implements some community suggested features.

-- Supported Minecraft Versions --
1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X, 1.19.X, 1.20.X

-- Changes --
  • Added a new feature which is intended to combat spawn-campers and general bad PvP behaviour. This feature is called 'death-bonus'. If a player is defeated a configurable amount of times, then they are given a special effect that boosts their speed and damage against all players that were involved in 'abusing' them. Similarly, the player also receives a reduced damage from the killers. The configuration is generated in config.yml but you can take a look here as well.
----------, Nov 22, 2023

  1. Aug 14, 2023
  2. Aug 08, 2023
  3. Jul 15, 2023
----------, Aug 22, 2023

BUG FIXES!

  • Add SummonFamiliar to allow for Pets and MythicMob AI to be controlled by the player!

RAVINGAR @RAVINGAR
Pushed to branch dev
19 hours ago
[​IMG]
RAVINGAR
@RAVINGAR
Acceptedmerge request !147"Fixed an exception that occurred when attempting to modify a monster's damage..."
19 hours ago
[​IMG]
RAVINGAR
@RAVINGAR
Openedmerge request !147"Fixed an exception that occurred when attempting to modify a monster's damage..."
19 hours ago
[​IMG]
RAVINGAR
@RAVINGAR
Pushed to branch 1.10_bug_fixes
6 days ago
[​IMG]
RAVINGAR
@RAVINGAR
Pushed new branch 1.10_bug_fixes
----------, Jul 11, 2023

# ==-- | **1.10 PREMIUM** | --==
This update is a MAJOR step forward for Heroes and the future of the plugin! A significant number of rewrites, optimisations and new features are present in this update as we finally jump to the new 1.10 mark. As always, please let us know if you encounter any issues with this new update.

**You MUST update all your skills for this latest version, otherwise the skills WILL NOT LOAD!**

**It is also recommended to backup your old damages.yml and then generate a new one! As there are new options configuration options available!**

## -- **Supported Minecraft Versions** --
1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X, 1.19.X, 1.20.X

## -- **New Features** --
- damages.yml now contains the option `use-pvx-damage-multipliers`. Previously, this has always been true, where a class's pvp and pve modifiers are considered during damage calculations. If you do not use this feature then simply set it to false, which can minorly improve performance.
- damages.yml now contains the option `item-damage-priority`. This has 5 modes and controls what affects a Hero's dealt damage. Previously, the highest value of all classes (primary, secondary and race) was chosen. It is advised to select the option that best suits your needs, as if you only use a primary class for damage, then choose that since it significantly reduces the amount of calculations required therefore improving performance.

The available options are;
```
  • - highest (checks which value is the highest of the three classes)
  • - primary (only uses primary class, if no value exists use global damage, if no global damage exists, use vanilla)
  • - secondary (only uses secondary class, if no value exists use global damage, if no global damage exists, use vanilla)
  • - race (only uses race class, if no value exists use global damage, if no global damage exists, use vanilla)
  • - none (don't use class scaling, instead use global damage if it exists - and if it doesn't then use vanilla values.)

```
- A Hero's attributes are now available as variables through MythicMobs! This means using script skills, you can use per attribute increases for various skill variables. You can access a Hero's attribute using a format such as; `<caster.var.hero_strength>` or `<caster.var.hero_charisma>`
- Expansion for Placeholder API is now implemented directly into Heroes! So there is no need to use a separate expansion file!
- Added a new scriptable skill type for passives! This skill will essentially call a MythicMob skill when for when the passive is applied and for when it is removed. Since there are more than two types, a new option has been added to the configurations. **Please regenerate your script-skills.yml to see the new format and update your skills accordingly**

Example of a passive skill;
```
- name: FieryPresence
on-apply-mythic-skill-id: FieryPresence-Apply
on-remove-mythic-skill-id: FieryPresence-Remove
type: PASSIVE
skill-types: BUFFING,ABILITY_PROPERTY_FIRE​
```
It's recommended that these Apply and Remove mythic skills should essentially apply and remove an Aura from Mythic Mobs. As this allows you to configure onTick skills, onApply and onRemove even further.
`requires-target` has now uses the 'type' option. Where if requires-target was true then use the new skill type `TARGETED`, or else if false, use `ACTIVE`

## -- **Changes and Optimisations** --
  • - Mitigation can no longer be configured per class, simply due to exponential increase in calculations that was required to do this.
  • - The enchantment mitigation values in damages.yml are now ONLY considered
  • - Summoned mobs should now have improved AI behaviour
  • - Experience boosts are no longer applied for players which are 'opped'. This does mean that even if a player is opped AND has permission for experience boosts, then they will receive no personal exp boosts regardless.

### **Damage Handler Rewrite**
The damage handling of Heroes has been completely rewritten! This was a major issue with Heroes, since the previous DamageEvent listener had become a bundle of spaghetti code spanning 11 years of history. This was clearly causing MANY issues such as bugs and huge performance losses.
As such, the old code has been completely discarded, with new code and API written to handle the many complex facets of Heroes damage. For example now, certain checks such as let's say for custom mitigation, are now made at startup rather than every single time a damage event is called - since not all users use custom mitigation.
For reference; on 1.9.30, a profiler run over 15 minutes (with only 2 players mind you) saw a contribution of over 100ms of CPU time. A similar test on 1.10 saw that number drop to less than 5ms, in some cases the time taken was so small that it didn't even show up on the profiler. This is a massive improvement and a huge undertaking to comprehensively scan and understand the mess that was the old spaghetti code and make something new that is optimised and efficient.
Additionally, damage seems to be handled more consistently and accurate with this rewrite. But this is extremely comprehensive, please let us know if you encounter any bugs!

### **SkillConfigManager Rewrite**
The SkillConfigManager has been rewritten to now cache values read from a skill configuration. In addition to other rewrites mentioned in the API section of this update document, **you can now specify ANY increase-per-attribute or per-level for ANY numeric skill setting on ANY skill**. For example, you can specify `damage-per-dexterity` or `duration-increase-per-intellect` on any skill setting. For example let's take a look at Kick. Previously, you could only increase the damage per strength as shown;
```
Kick:
damage: 5
damage-increase-per-strength: 1
duration: 2500
```
But now you can configure something such as this, where you can use any attribute and even `per-level` to have skills dynamically scale with a Hero's attributes.
```
Kick:
damage: 5
damage-per-intellect: 0.5
duration: 2500
duration-increase-per-charisma: 500​
```
This change both allows for more customisation and also improves efficiency, reducing plugin latency.

With this change, you can now change the SkillSetting priority based on class and preference. In config.yml you can find this section.
```
classes:
# When getting the setting for a skill, here you can specify the priority type. The valid types are 'default', 'highest', or 'primary'
skill-setting-priority: HIGHEST
```
The available settings are;
**DEFAULT** -> Returns the first available skill setting in order of Primary, Secondary, Race, Global, Skills.yml. For example, if both a Hero's secondary class and race class have the skill setting for damage. Regardless of which is higher. The value from secondary will always be returned.

** HIGHEST** -> Returns the highest value for a skill setting based on each of a Hero's classes. For example if a Hero has the 'damage' setting equal to 8 for their primary, and 12 for their race. Then the 12 value is used. That 12 value is used even if a higher value of lets say 24 is specified in the skills.yml. In this mode only if neither the primary, secondary, race class, nor the global skill set have the skill setting specified is the skills.yml value used.

** PRIMARY** -> Only checks a player's Primary, Global and Skills.yml for a Skill Setting. Similar to default in that it will prefer primary over global. Where if neither primary and global has the setting set, then it will use the value from skills.yml.

### **Monster Handling Rewrite**
Monster objects are now initialised just as a monster spawns, rather than only as required. This reduces the required load on whatever execution is requesting a monster object, since they are almost always loaded anyway.
Removed outdated use of storing custom attributes in a monster's entity. This was contributing to significant server latency and served no real purpose anymore, hence it has been removed.

## -- **Bug Fixes** --
- Fixed major oversight regarding how armour and other mitigation is handled. Previously, the assumption was made that vanilla mitigation was not applied after all our handling; however I was wrong. What this meant is that when wearing armour, particularly with enchantments. The mitigation Heroes applied would be applied IN ADDITION to vanilla mitigation. This is why protection enchants were always so strong when using Heroes. Now, Heroes automatically adjusts for it's custom mitigation, ensuring that damage is dealt correctly.
- Side-effect of the above, is that custom enchant mitigation is now ONLY applied when custom mitigation is enabled! Additionally, the values read in damages.yml for protection is read as decimals, for example 0.04 will mean 4% per enchant level || if custom mitigation is disabled, then vanilla enchant mitigation values are applied.

  • - Fixed issue where skills would not heal in combat
  • - Effects which apply a 'no sprint debuff' now should work correctly. SlowEffect in particular and casting will now prevent a player from both sprinting and juping.
  • - Fixed issue with SkillBaseSphere which threw an exception.
  • - Fixed issue with SkillBaseMarkedTeleport which caused particles to not appear correctly
  • - Fixed bug where some skills would not broadcast their message and instead would spew a warning in console.
  • - Armour toughness is now considered correctly.
  • - Fixed bug where armour could be equipped under circumstances when it shouldn't.
  • - Removed old code that caused default health to be set incorrectly.
  • - Fixed a significant number of other miscellaneous bugs and issues

## -- **API Changes** --
- MythicMobs now have their own CharacterTemplate subclass called MythicMonster. This way, Heroes WILL NOT override a Mythic Mob's stats regardless of any configured values. Additionally, if a MythicMob is using a casting skill, a Hero's interrupt now actually applies to a MythicMob as well.
- SkillSetting is now an abstract class which stores static objects. A new interface `Setting<T>` now represents a SkillSetting that returns a specific variable of it's type parameter.
- All methods relating to `SkillConfigManager.getUseSetting()` have been deprecated, in favour of the method `SkillConfigManager.getCachedUseSetting()` which considers the type parameter of the SkillSetting
- A number of methods in CharacterDamageManager has been updated, removed or deprecated. If you wish to get the amount of damage a Hero will deal, it is recommended to use `getMeleeDamage(Hero, Material)` or `getProjectileDamage(Hero, ProjectileType)`. Keep in mind these values do not consider PvX multipliers, nor do they include bonus enchantment damage.
- HDamageListener is now completely deprecated and no longer used, instead the DamageHandler class is the main handler of damage.

The nexus repository has been updated. Please note that the repository URL has been updated, but as per usual, you can use the Heroes API with the following artifact;
```
<repository>
<id>heroes-repo</id>
<url>https://nexus.hc.to/content/repositories/pub_snapshots/</url>
</repository>

<dependency>
<groupId>com.herocraftonline.heroes</groupId>
<artifactId>Heroes</artifactId>
<version>1.10-SNAPSHOT</version>
<scope>provided</scope>
</dependency>

```

## -- **Developer Notes** --
Due to many massive rewrites, if any custom skills are used, they **need** to be recompiled against `1.10-SNAPSHOT` otherwise they will not load. This is because we changed the SkillSetting enum class to an interface. This change was made for optimisations, cleaner code and the possibility to cache values.

There exists now a number of preset SkillSetting implementations such as SkillSettingInt, SkillSettingString, SkillSettingDouble and so on. You can even create your own SkillSetting which may read a configuration for example, and then return a custom object for your use in a skill.

SkillSettings such as `damage-increase-per-dexterity`, `duration-per-level` etc, are now deprecated. This is since SkillSettingInt and SkillSettingDouble automatically consider all attribute increases and per level increases on every skill setting as mentioned. Therefore these deprecated SkillSettings, will always return 0. Hence its no longer necessary to include them in code.

For example, it is no longer necessary to use code such as this;
```
double damage = SkillConfigManager.getUseSetting(hero, this, SkillSetting.DAMAGE, 50, false);
final double damageIncrease = SkillConfigManager.getUseSetting(hero, this, SkillSetting.DAMAGE_INCREASE_PER_STRENGTH, 1.0, false);
damage += damageIncrease * hero.getAttributeValue(AttributeType.STRENGTH);
```

Now, this is the only code necessary to achieve the same effect;
```
double damage = SkillConfigManager.getCachedUseSetting(hero, this, SkillSetting.DAMAGE, 50.0)
```

**Please do not hesitate to let us know if you have any issues with the new changes or require assistance with the API**
*This update has been tested extensively but due to the comprehensive rewrites it possible there may be some things that we missed.*

Thank you for supporting Heroes throughout all these years!
----------, Jul 4, 2023

-== | UPDATE 1.9.30 - Hotfix 1 | ==-- Fixed a few bugs that were introduced with the previous version, please use this version!

-- Bug Fixes -- - Citizens NPC Hero's will now load correctly - Fixed a number of thrown exceptions caused by changing the way that the .getHero() method works - Finally and properly fixed the Heroes scoreboard. Party members names will no longer duplicate when they die, among fixing a few other things. Basically scoreboards are now run on a central timer, and any request to update them is run synchronously with each other, therefore preventing duplication issues. (There may be some performance improvements to this as well)

--== | **UPDATE 1.9.30** | ==--

There have been MANY major changes and NEW features added to this version. Please let us know if you encounter any issues with this new update.

-- **Supported Minecraft Versions** --
1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X, 1.19.X

-- **More Version Support** --
A little while ago we updated Heroes to Java 16, which was actually unnecessary. We have now reverted Heroes to be compiled on Java 8, what this means is that once again ALL versions from 1.13 and onwards are now supported by Heroes! Due to the overwhelming amount of changes to Heroes as well it is **REQUIRED** that you redownload ANY and ALL skill packs as previous versions of skills may cause major errors. More details on skill updates below.

-- **Full Translation Support** --
Attention all, drum roll please - Heroes now has **FULL TRANSLATION SUPPORT**. Pretty much every single message in Heroes is now translatable via a file created by the plugin called `translations.yml`! The only exceptions is that some commands are not translatable, the majority of the most used ones are! We will be finishing off the rest of the commands in future updates to come! This was a major undertaking, with the translation file featuring literally over 400 messages which used to be hard coded into Heroes, so understandably there may be some small typos or errors - please let us know if you come across any!

When ** configuring** the translations. There are few little tricks you can do to further customize Heroes;
- For many translations, mainly those which are sent to the player as a message, if you configure the translation such that `some-translation: ''` (such that it's empty), this will mean that the message simply will not be sent! This means for example for those of you which don't use races or don't use secondary classes, you can simply set those options to an empty string and then those messages won't be sent. For example, see the below translations which are used mainly for the /hero info command.

*Default*
```
commands:
player-summary: '{level} {primary}&r, {level} {secondary}&r, {race}'
class-summary: '&aClass {primary}$mastered-primary$ &7| &aProfession {secondary}$mastered-secondary$'
race-summary: '&aRace &7- {race}'
```

*Modified*
```
commands:
player-summary: '{level} {primary}&r'
class-summary: '&aClass {primary}$mastered-primary$ &7'
race-summary: ''
```
As such, removing the messages for races and secondary classes will mean the message is not sent to the player.

- Another thing you may have noticed is the use of {level}. The curly brackets will tell Heroes to look for another translation in the same section as where it is used. In the above examples, the `player-summary` is in the `commands` section, using {level} will look for a translation with the path commands.level and will automatically fill it with that value. By default, it will fill it with 'Lv. &6$lvl$'. Additionally you can specify a translation from another section just by doing {section.message} for example.

- In many of the translations, we use placeholder values such as $lvl$, $1, $2 etc. In some instances those values will be replaced with levels, a Hero's name or whatever else in relation to the specific translation. If you don't wish to use these values you don't have to, however you can't add your own placeholders (unless it's through Placeholder API) to these messages.

- As you'd expect we support using chat colours as well, any character of & will be interpreted as a chat color so keep that in mind.

- If you want things to be formatted correctly, it's recommended to try keep the spaces in translations as what is written if you want things to be displayed properly.

-- ** Optimizations** --
For many years, Heroes has relied on an external library/plugin called EffectLib, it WAS necessary in the past that this plugin was installed for many of Heroes skills to work. However, we have now shaded the library into Heroes itself so you will no longer require to install that plugin separately! Additionally, EffectLib's EffectManager USED to be created pretty much every time a skill was cast, this meant unnecessary memory overhead and was just incredibly inefficient. As such, NOW, Heroes has one EffectManager of which ALL skills have been updated to use. **This is another reason why it is REQUIRED that you update all of your skills from the available skill packs**.

--- **Miscellaneous** --
- Fixed bug in MMOItemHandler
- Added option for damage scaling where mobs will only be scaled if the player is higher than their level.
- **ALL COMMANDS** in Heroes now should have automatic tab completions. This was done somewhat automagically so it can be a little buggy, remember, if you ever get confused about a hero command just type the command with a question mark after it.
- A player's Hero is no longer unloaded twice when they quit the server
- Added an option to attributes to allow an initial allocation point amount when the player is at level 1.
- Made the majority of log messages such as ("Class does not have pvp-item-multiplier set") and alike as debug messages ONLY. Therefore, simply enable debug mode if you wish to see these messages. This has made the Heroes boot sequence a lot cleaner :)
- Enabling debug mode on config.yml will no longer mute normal log messages
- Added a mana and stamina condition to be injected with MythicMobs
- Mobs are now able to hit themselves (this was causing issues with plugins such as MythicMobs)
- If an equipped item is broken, then it's armour value will not be considered during custom mitigation.
- Update the list of what is considered a transparent block for versions 1.16-1.19
- The MythicMob item roll option now has an optional default role setting.
- Fixed a major bug where skills did not heal in combat.
- Fixed a potentially major issue causing an infinite loop regarding party members leaving.
- Combat enter and leave messages have been moved to translations.yml. This should be done automagically.

-- **Developer Updates** --
- When using Heroes.getCharacterManager().getHero(), this has been changed so that it will NO LONGER load a Hero if the Hero is not loaded. This was to prevent weird issues where a Hero was loaded even after they were offline. If you attempt to getHero() when they are not loaded then an exception will be thrown. To avoid this, basically do NOT call getHero() from a PlayerJoinEvent pretty much ever, always run a delayed task or find another way to accomplish whatever it is you wish to do.
- The Messaging class which has been deprecated for a while now has been removed. If you're using this, just don't. Use ChatComponents if you really need.
- When using a Hero object, using .getHeroClass(), .getSecondaryClass(), or .getRaceClass() will now NEVER be null. This is how it's always been, but for some reason these methods were marked as Nullable
- For skill developers, if you wish to use the shaded effect lib you can use the protected static final variable called 'effectLib', or you can get an instance of the plugin and call .getEffectLibManager(). Please NEVER dispose of this manager as it is used by all skills and is not disposed of.
- The latest public repository available is now 1.9.30-RELEASE. Maven example is below;
```
<repository>
<id>heroes-repo</id>
<url> https://nexus.hc.to/content/repositories/pub_releases/</url>
</repository>

<dependency>
<groupId>com.herocraftonline.heroes</groupId>
<artifactId>Heroes</artifactId>
<version>1.9.30-RELEASE</version>
<scope>provided</scope>
</dependency>
```


-- **The Future of Heroes** --
Our next major plan for Heroes, as we have mentioned is to essentially rewrite the entire damage handler. Over the many years of Heroes life, this damage handler has been an intertwined mess of spaghetti code. The problem, is that damage events are called constantly, multiple times a second, and therefore because this code is incredibly inefficient - this is most likely the main cause of any 'lag' generated by Heroes. My goal is to rewrite it from the ground up, refactoring it so that various checks are only made if those options are enabled for example. This will improve both the efficiency and hopefully will fix the magnitude of bugs generated by the spaghetti code damage handler. I'm currently aware of issues regarding enchantment damage and protection, where both values tend to not scale correctly at all. For example, right now - apparently damage over time effects such as bleed stack with sharpness. To fix issues such as these will require the full damage rewrite.
By improving the damage handler you should expect a significant performance improve across the board.
----------, Feb 8, 2023

--== | **UPDATE 1.9.30** | ==--
There have been MANY major changes and NEW features added to this version. Please let us know if you encounter any issues with this new update.

-- **Supported Minecraft Versions** --
1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X, 1.19.X

-- **More Version Support** --
A little while ago we updated Heroes to Java 16, which was actually unnecessary. We have now reverted Heroes to be compiled on Java 8, what this means is that once again ALL versions from 1.13 and onwards are now supported by Heroes! Due to the overwhelming amount of changes to Heroes as well it is **REQUIRED** that you redownload ANY and ALL skill packs as previous versions of skills may cause major errors. More details on skill updates below.

-- **Full Translation Support** --
Attention all, drum roll please - Heroes now has **FULL TRANSLATION SUPPORT**. Pretty much every single message in Heroes is now translatable via a file created by the plugin called `translations.yml`! The only exceptions is that some commands are not translatable, the majority of the most used ones are! We will be finishing off the rest of the commands in future updates to come! This was a major undertaking, with the translation file featuring literally over 400 messages which used to be hard coded into Heroes, so understandably there may be some small typos or errors - please let us know if you come across any!

When ** configuring** the translations. There are few little tricks you can do to further customize Heroes;
- For many translations, mainly those which are sent to the player as a message, if you configure the translation such that `some-translation: ''` (such that it's empty), this will mean that the message simply will not be sent! This means for example for those of you which don't use races or don't use secondary classes, you can simply set those options to an empty string and then those messages won't be sent. For example, see the below translations which are used mainly for the /hero info command.

*Default*
```
commands:
player-summary: '{level} {primary}&r, {level} {secondary}&r, {race}'
class-summary: '&aClass {primary}$mastered-primary$ &7| &aProfession {secondary}$mastered-secondary$'
race-summary: '&aRace &7- {race}'
```

*Modified*
```
commands:
player-summary: '{level} {primary}&r'
class-summary: '&aClass {primary}$mastered-primary$ &7'
race-summary: ''
```
As such, removing the messages for races and secondary classes will mean the message is not sent to the player.

- Another thing you may have noticed is the use of {level}. The curly brackets will tell Heroes to look for another translation in the same section as where it is used. In the above examples, the `player-summary` is in the `commands` section, using {level} will look for a translation with the path commands.level and will automatically fill it with that value. By default, it will fill it with 'Lv. &6$lvl$'. Additionally you can specify a translation from another section just by doing {section.message} for example.

- In many of the translations, we use placeholder values such as $lvl$, $1, $2 etc. In some instances those values will be replaced with levels, a Hero's name or whatever else in relation to the specific translation. If you don't wish to use these values you don't have to, however you can't add your own placeholders (unless it's through Placeholder API) to these messages.

- As you'd expect we support using chat colours as well, any character of & will be interpreted as a chat color so keep that in mind.

- If you want things to be formatted correctly, it's recommended to try keep the spaces in translations as what is written if you want things to be displayed properly.

-- ** Optimizations** --
For many years, Heroes has relied on an external library/plugin called EffectLib, it WAS necessary in the past that this plugin was installed for many of Heroes skills to work. However, we have now shaded the library into Heroes itself so you will no longer require to install that plugin separately! Additionally, EffectLib's EffectManager USED to be created pretty much every time a skill was cast, this meant unnecessary memory overhead and was just incredibly inefficient. As such, NOW, Heroes has one EffectManager of which ALL skills have been updated to use. **This is another reason why it is REQUIRED that you update all of your skills from the available skill packs**.

--- **Miscellaneous** --
- Fixed bug in MMOItemHandler
- Added option for damage scaling where mobs will only be scaled if the player is higher than their level.
- **ALL COMMANDS** in Heroes now should have automatic tab completions. This was done somewhat automagically so it can be a little buggy, remember, if you ever get confused about a hero command just type the command with a question mark after it.
- A player's Hero is no longer unloaded twice when they quit the server
- Added an option to attributes to allow an initial allocation point amount when the player is at level 1.
- Made the majority of log messages such as ("Class does not have pvp-item-multiplier set") and alike as debug messages ONLY. Therefore, simply enable debug mode if you wish to see these messages. This has made the Heroes boot sequence a lot cleaner :)
- Enabling debug mode on config.yml will no longer mute normal log messages
- Added a mana and stamina condition to be injected with MythicMobs
- Mobs are now able to hit themselves (this was causing issues with plugins such as MythicMobs)
- If an equipped item is broken, then it's armour value will not be considered during custom mitigation.
- Update the list of what is considered a transparent block for versions 1.16-1.19
- The MythicMob item roll option now has an optional default role setting.
- Fixed a major bug where skills did not heal in combat.
- Fixed a potentially major issue causing an infinite loop regarding party members leaving.
- Combat enter and leave messages have been moved to translations.yml. This should be done automagically.

-- **Developer Updates** --
- When using Heroes.getCharacterManager().getHero(), this has been changed so that it will NO LONGER load a Hero if the Hero is not loaded. This was to prevent weird issues where a Hero was loaded even after they were offline. If you attempt to getHero() when they are not loaded then an exception will be thrown. To avoid this, basically do NOT call getHero() from a PlayerJoinEvent pretty much ever, always run a delayed task or find another way to accomplish whatever it is you wish to do.
- The Messaging class which has been deprecated for a while now has been removed. If you're using this, just don't. Use ChatComponents if you really need.
- When using a Hero object, using .getHeroClass(), .getSecondaryClass(), or .getRaceClass() will now NEVER be null. This is how it's always been, but for some reason these methods were marked as Nullable
- For skill developers, if you wish to use the shaded effect lib you can use the protected static final variable called 'effectLib', or you can get an instance of the plugin and call .getEffectLibManager(). Please NEVER dispose of this manager as it is used by all skills and is not disposed of.
- The latest public repository available is now 1.9.30-RELEASE. Maven example is below;
```
<repository>
<id>heroes-repo</id>
<url> https://nexus.hc.to/content/repositories/pub_releases/</url>
</repository>

<dependency>
<groupId>com.herocraftonline.heroes</groupId>
<artifactId>Heroes</artifactId>
<version>1.9.30-RELEASE</version>
<scope>provided</scope>
</dependency>
```


-- **The Future of Heroes** --
Our next major plan for Heroes, as we have mentioned is to essentially rewrite the entire damage handler. Over the many years of Heroes life, this damage handler has been an intertwined mess of spaghetti code. The problem, is that damage events are called constantly, multiple times a second, and therefore because this code is incredibly inefficient - this is most likely the main cause of any 'lag' generated by Heroes. My goal is to rewrite it from the ground up, refactoring it so that various checks are only made if those options are enabled for example. This will improve both the efficiency and hopefully will fix the magnitude of bugs generated by the spaghetti code damage handler. I'm currently aware of issues regarding enchantment damage and protection, where both values tend to not scale correctly at all. For example, right now - apparently damage over time effects such as bleed stack with sharpness. To fix issues such as these will require the full damage rewrite.
By improving the damage handler you should expect a significant performance improve across the board.
----------, Feb 1, 2023

Update 1.9.25-b(Hotfix)

Fixed issue when generating new files that caused null pointer Fixed issue loading skills. Skills are now built on Java 16 just like Heroes allowing backwards compat for 1.16.5 and above Updated default classes to some nice community submitted ones. These are much more helpful when using Heroes for the first time. Fixed a long-standing issue with the custom knockback implementation, where values less than vanilla knockback would tend to sometimes pull an entity towards the player.
----------, Oct 18, 2022

HEROES VERSION 1.9.25-SNAPSHOT

Scriptable Skills (Mythic Skills)
Added Mythic Skills which means Heroes now FINALLY has scriptable skills! You do require MythicMobs for this to work as it essentially casts a MythicMob skill as a Hero. You can configure stamina, mana, reagent costs - cooldowns, delays and all! At the moment, the one limitation is that Mythic Skills do not support increases per attributes unfortunately since Mythic Mobs is what handles the damage calculations. (This could be solved with a custom Heroes damage mechanic, but maybe thats for later). A new file called script-files should be generated after booting your server with this update. There are 3 examples in there of Mythic Skills with an in-depth explanation of how it works.

Custom Heroes Mythic Mechanics and Conditions
Since we are dealing with Mythic Mobs more directly in Heroes, we have added 1 condition and 4 new mechanics for your usages.
The condition 'heroestarget{type=?}' should be used on mythic skills to help mythic target the correct mobs. This is explained further in the script-skills.yml file.
The ? can be replaced with either ALLY, ENEMY, SELF, or ALL.
The mechanic 'drainstamina{amount=50}/drainmana{amount=50}' will drain the target's stamina/mana if they are a player by the specified amount. This can be used in mythic skills or by a mythic mob.
The mechanic 'drainstaminaovertime{amount=20;duration=6000;period=1000}/drainmanaovertime{amount=20;duration=6000;period=1000}' will drain the target's stamina/mana by the specified 'amount' if they are a player for every 'period' over the specified 'duration'. This can be used in mythic skills or by a mythic mob.

Custom Health Regen
A new section has been added to the config.yml called 'health'. This should automatically generate after booting your server with the new update. This will add a constant static regeneration effect to all players, similar to how mana and stamina generate. You can customise how often it regenerates, a regen-multiplier when in combat. You can even make it so it only regenerates when food is full. These can be configured by default in the config.yml or individually in classes, and support regen increases per level just like the other stats. As usual, by default this is turned OFF, simply set enabled: true in the health section to enable the feature.

Default Max Stats and Regen
Added a config option to set the default max health, stamina and mana. Similarly a default regen for health, mana and stamina has also been added to config.yml. These values will be used if NO stat is configured in the class.yml file.

Heroes Food Change
Changed the time-multiplier setting in config.yml to be read as milliseconds instead of seconds so that this is consistent with literally all the other config settings. If this value is set to less than 100, you'll get a warning saying you have set it incorrectly, and Heroes will convert the value into milliseconds for you.

MMOItems Additions
Added a heroes-health-regen stat to MMOItems to match with the mana and stamina ones. Added an optional stat to MMOItems called penetration. You can choose to use this in the experimental-features tab. If you set use-mmoitems-penetration to true, then the amount of penetration a weapon will do will now be dependent on the MMOItem's penetration stat on the weapon NOT what is configured in the config.

Damage Scaling Feature
Todo stub

-- Bug Fixes/Changes --

  • Fixed an issue where when custom knockback was enabled, hitting an enemy where the attack was cancelled would cause the enemy to be thrown towards you
  • Updated MMOItems to 6.8.2 dependency and MythicLib to 1.4.2. If you do not use those versions then MMOItems Stats may have their lore-format stats generated weirdly
  • Updated default classes to the community submitted ones (which are better constructed and way more helpful for new users). And removed the old default classes.
-- API Changes --

  • WeaponDamageEvent and SkillDamageEvent now inherit from a class called HeroesDamageEvent which represents a HeroesDamageEvent between two entities. A new API event has been added called MythicDamageEvent which represents an event caused by a MythicMob dealing damage via a skill. This helps to clean up the code quite a bit and hopefully will improve efficiency
  • Improved the usage of switching between ItemHandlers depending on if you are using Relics or MMOItems.
----------, Oct 15, 2022

HEROES VERSION 1.9.25-SNAPSHOT

Scriptable Skills (Mythic Skills)
Added Mythic Skills which means Heroes now FINALLY has scriptable skills! You do require MythicMobs for this to work as it essentially casts a MythicMob skill as a Hero. You can configure stamina, mana, reagent costs - cooldowns, delays and all! At the moment, the one limitation is that Mythic Skills do not support increases per attributes unfortunately since Mythic Mobs is what handles the damage calculations. (This could be solved with a custom Heroes damage mechanic, but maybe thats for later). A new file called script-files should be generated after booting your server with this update. There are 3 examples in there of Mythic Skills with an in-depth explanation of how it works.

Custom Heroes Mythic Mechanics and Conditions
Since we are dealing with Mythic Mobs more directly in Heroes, we have added 1 condition and 4 new mechanics for your usages.
The condition 'heroestarget{type=?}' should be used on mythic skills to help mythic target the correct mobs. This is explained further in the script-skills.yml file.
The ? can be replaced with either ALLY, ENEMY, SELF, or ALL.
The mechanic 'drainstamina{amount=50}/drainmana{amount=50}' will drain the target's stamina/mana if they are a player by the specified amount. This can be used in mythic skills or by a mythic mob.
The mechanic 'drainstaminaovertime{amount=20;duration=6000;period=1000}/drainmanaovertime{amount=20;duration=6000;period=1000}' will drain the target's stamina/mana by the specified 'amount' if they are a player for every 'period' over the specified 'duration'. This can be used in mythic skills or by a mythic mob.

Custom Health Regen
A new section has been added to the config.yml called 'health'. This should automatically generate after booting your server with the new update. This will add a constant static regeneration effect to all players, similar to how mana and stamina generate. You can customise how often it regenerates, a regen-multiplier when in combat. You can even make it so it only regenerates when food is full. These can be configured by default in the config.yml or individually in classes, and support regen increases per level just like the other stats. As usual, by default this is turned OFF, simply set enabled: true in the health section to enable the feature.

Default Max Stats and Regen
Added a config option to set the default max health, stamina and mana. Similarly a default regen for health, mana and stamina has also been added to config.yml. These values will be used if NO stat is configured in the class.yml file.

Heroes Food Change
Changed the time-multiplier setting in config.yml to be read as milliseconds instead of seconds so that this is consistent with literally all the other config settings. If this value is set to less than 100, you'll get a warning saying you have set it incorrectly, and Heroes will convert the value into milliseconds for you.

MMOItems Additions
Added a heroes-health-regen stat to MMOItems to match with the mana and stamina ones. Added an optional stat to MMOItems called penetration. You can choose to use this in the experimental-features tab. If you set use-mmoitems-penetration to true, then the amount of penetration a weapon will do will now be dependent on the MMOItem's penetration stat on the weapon NOT what is configured in the config.

Damage Scaling Feature
Todo stub

-- Bug Fixes/Changes --

  • Fixed an issue where when custom knockback was enabled, hitting an enemy where the attack was cancelled would cause the enemy to be thrown towards you
  • Updated MMOItems to 6.8.2 dependency and MythicLib to 1.4.2. If you do not use those versions then MMOItems Stats may have their lore-format stats generated weirdly
  • Updated default classes to the community submitted ones (which are better constructed and way more helpful for new users). And removed the old default classes.
-- API Changes --

  • WeaponDamageEvent and SkillDamageEvent now inherit from a class called HeroesDamageEvent which represents a HeroesDamageEvent between two entities. A new API event has been added called MythicDamageEvent which represents an event caused by a MythicMob dealing damage via a skill. This helps to clean up the code quite a bit and hopefully will improve efficiency
  • Improved the usage of switching between ItemHandlers depending on if you are using Relics or MMOItems.
----------, Oct 13, 2022

----------, Sep 18, 2022

Please test before going into production, things should function!


  1. 01 Jul, 2022 3 commits
  2. 27 Jun, 2022 1 commit
  3. 25 Jun, 2022 1 commit
  4. 24 Jun, 2022 1 commit
  5. 19 Jun, 2022 3 commits
  6. 17 Jun, 2022 2 commits
  7. 15 Jun, 2022 2 commits
  8. 12 Jun, 2022 1 commit
  9. 10 Jun, 2022 1 commit
  10. 06 Jun, 2022 2 commits
  11. 03 Jun, 2022 2 commits
  12. 02 Jun, 2022 3 commits
  13. 31 May, 2022 5 commits
  14. 30 May, 2022 5 commits
----------, Jul 12, 2022

  1. Changes Made to the Enchant Skill So the Enchant skill has received a lot of complaints, its configuration was confusing, it didn't properly take away from player's level etc... I've essentially completely reworked it and below is how it will NOW function, and yes it does take away from levels and its also a bit more customiseable.
    How enchanting works in Heroes is as follows. When you go to enchant an item, Heroes will check what rolled enchantments you got. It will then use the enchantments configured in skills.yml to get a required level for those enchantments. For example, if you specified sharpness: 15 in skills.yml. Then if you rolled any level of sharpness, and your enchanter class is not level 15 minimum, then sharpness will be removed from the roll.

    I added a setting called "experience-cost-per-level". Basically you can set this to any number, even a decimal value. This will change the cost of the enchant for each enchantment and their levels. For example if you rolled an item with Sharpness II and Knockback I, with an experience-cost-per-level: 3. This would mean that the amount of levels taken would be (2 * 3 + 1 * 3) = 9. This will now only take it from your Enchanter class, and will no longer mess up the sync of the experience bar.

    If you don't want this functionality and want to keep vanilla cost functionality, just set the experience-cost-per-level to -1. This will mean level 1, 2 or 3 enchants will take 1, 2 or 3 levels away from your enchanter class when you enchant.

    Due to these changes I would recommend just removing the current config for the Enchant skill in skills.yml and let it regenerate values.

    I hope this improves the QOL for a lot of server owners, and if you guys have any feedback on the new system be sure to let us know! :)
  2. [6:49 AM]
    I have also fixed the NPC raceClass exception as well,
----------, May 31, 2022

--== | UPDATE 1.9.21 | ==-- Please let us know if you encounter any issues with this new update

-- Supported Minecraft Versions -- 1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X

-- IMPORTANT CHANGE REGARDING JAVA VERSION -- Previously Heroes was compiled using Java 11 meaning you had to run your server with Java 11 or higher. We have now moved to Java 17 as this is the latest LTS version of Java. We had to make this change as MythicLib/MythicMobs has substantially changed their API and we of course have updated ours, however since their plugins are compiled on Java 16, we had to update to. TLDR - If you boot your server with this new version and Heroes DOESN'T load then you MAY need to "rebuild" the server.jar file using BuildTools with Java 17 as there's a chance it may have been compiled on an older version of Java. See the link below for how to use BuildTools if you're unfamiliar. https://www.spigotmc.org/wiki/buildtools/

-- Changes and Bug Fixes --

  • Transient permissions now are setup instantly rather than delayed, this may solve some exceptions being thrown under some cases

  • Custom knockback calcs are performed as a monitor handler, meaning AFTER all other plugins have their say. This will prevent instances where a damage event may be cancelled but knockback is applied anyway, therefore causing the target to be 'pulled' towards the player

  • Updated MythicMobs API, this version of Heroes will not work on older versions of MythicMobs/MythicLib

  • Numerous improvements to consistency of saving with YML storage

  • Races can now have base attributes which will ADD onto attributes specified by the primary class. Races can also have base HP, mana, stamina, shield and regenerations. When determining a player's base stats it will choose the higher of the stats between race and primary class.

  • Debug log will now be limited to a size of 128 mb and 3 rotating logs.. This is due to an issue where the debug log would essentially eternally append to itself and grew to a very scary file size.

  • Changed a lot of bad catching of exceptions.

  • Updated SlowEffect to no longer set a player's hunger to low as this caused some inconsistencies. The goal of this was to prevent sprinting, however a slow potion effect pretty much does this. Additionally though it will give a corrupted jump boost effect which will prevent the player was jumping.
-- New API -- This update is quite important for any skill developers or people who program their own skills

Added a new interface called Listenable which is meant to be implemented by Skill subclasses.

Since many skill rely on internal SkillListeners to respond to events, I realised there was no way for this to be added ONLY if a player has the skill available to them. As such, every single skill that was loaded would ALWAYS have it's Listener registered regardless of if any player could actually use that skill or not. Some skills may not need to implement this interface such as one that restricts all players from doing something unless they have the skill. But for combat skills which may listen for a damage event, there is no reason for the listener to be registered unless a player has the skill.

In the past the listener was registered in the skill's constructor, using Bukkit.registerEvents() etc. I would recommend for Listeners that do not need to be registered unless the skill is being used to use the below structure. Everything else will be handled automagically by Heroes.

The reason this is an interface of course is to maintain backwards compat, so you don't HAVE to update your skills to this format, but it's recommended as it can increase performance.

Code (Text):

public class SkillExample extends ActiveSkill implements Listenable {
    private final Listener listener;
    public SkillExample() {
        listener = new SkillListener();
    }
    @Override
    public Listener getListener() {
        return listener;
    }
}
----------, May 15, 2022

Re-upload to public skills if you're seeing issues.
----------, Apr 20, 2022

--== | UPDATE 1.9.20 | ==-- This update also includes changes from the last previous few updates Please let us know if you encounter any issues with this new update

-- Supported Minecraft Versions -- 1.13.X, 1.14.X, 1.15.X, 1.16.X, 1.17.X, 1.18.X

-- Changes and Bug Fixes --

  • Experimental weapon features will now retroactively generate in the Heroes/config.yml file. These features will default to enabled : false

  • When check equipment weight is enabled in the config, if you attempt to put on a piece of armor that is not for your class or that will make you overweight, then it will not let you put it on (this just straight up didn't work before)

  • Added a method to add max stamina, similar to how methods exist to remove and add max mana. Essentially just to add more support for other plugins. Additionally, these maxMana calls actually stay when rebuilding attributes (that part was broken)

  • Reimplemented how Heroes handles no damage ticks. Now you will find there is much consistency when attacking entities in when damage hits are registered, and also fixed a bug where you could actually damage entities in between no damage ticks when spamming quick enough.

  • Fixed a custom knockback issue where spamming attacks would occasionally make the targeted entity be thrown towards you

  • Fixed an inconsistency in how knockback is handles on top of vanilla knockback. Basically added a condition to make it more consistent.

  • Titles will no longer be called with a server command and will no longer be spammed in the console

  • Changed the skill message to use a star Unicode symbol

  • Potion skills no longer give a debug message

  • Rewrote database yml into a separate file.

  • Automagically handles moving legacy database configuration to new database.yml

  • Also adds default database.yml when new server is created.
-- Regarding Database Changes --

What I've done is completely rewritten the logic and behavior for how Heroes loads and saves player's data. This goes for both SQL and YML. They are still stored in the same format however.

What this means is more efficient getHero() calls, and NPC's Hero's SHOULDNT be written to YML or SQL entries

Additionally the Citizens integration never worked properly, simply because someone didn't specify that citizens NPCs should be saved using a different storage type... One thing I haven't changed is that SQL Database still uses a persistent Database ID. This is associated with a player's UUID however so there shouldn't be any issues with it

You can add the following under properties to prevent the handling of old legacy files which will improve getHero() performance slightly. For new servers you can set it to false, and it won't attempt to load other directories. Otherwise it will automatically remove legacy files as player data is converted to the new format (this is for YML only).

load-legacy-player-data: true
----------, Apr 4, 2022

Yet another release!


Fixed tool command damage info

Rewrote database yml into a separate file.

Automagically handles moving legacy database configuration to new database.yml

Also adds default database.yml when new server is created.

----------, Mar 25, 2022

Notes:
  • Refactored projectile damage handling adding better consistency
  • Added support for 1.18.2 Similarly, if a newer version of Minecraft is released, Heroes SHOULD be able to run on that newer version.
  • There shouldn't be any issues in doing so, however do it at your own risk.
  • Fixed bug for when you deflect a fireball which caused an exception.
  • Fixed damage bug where non-combat items would always do 1 damage
----------, Mar 7, 2022

  1. 15 Feb, 2022 1 commit
  2. 14 Feb, 2022 1 commit
  3. 11 Feb, 2022 2 commits
  4. 10 Feb, 2022 2 commits
  5. 02 Feb, 2022 1 commit
----------, Feb 16, 2022

Check it out!


Calculating direction from start and end vectors had a minor typo basically. Should have been x, z, y instead of x, y, z because apparently I couldn't read lol.

Added clauses in targettedskill to account for self targeting and putting priority on other players in the party first

Fixed a logic error that was created when switching to point priority as the main form of targeting.


Accounts for other plugins affecting movement speed
----------, Jan 31, 2022

----------, Jan 25, 2022

While this has passed basic testing, there may be major bugs and we're releasing this early as an ALPHA. Please test and give us feedback so we can stamp out any bugs!
Main Changes

  • Before, the AABB_v1_XX_X_RX was essentially a wrapper for NMS's AxisAlignedBB. Spigot's API contains a 'BoundingBox' which is basically an AABB. The AxisAlignedBoundingBox instead of wrapping NMS, just uses a BoundingBox as a class field now.

  • The AxisAlignedBoundingBox class wraps the BoundingBox and maintains the previous functionality of previous Physics versions

  • In this NMSPhysics, The FluidCollisionOption from NMS was replaced with Spigot's own FluidCollisionMode

  • A MovingObjectPosition from NMS was used for a lot of these methods. The MOP was basically NMS's rayCasting result and had two subclasses, basically specifying either if a Block or an Entity was hit, and of course the location of what was hit. During the rewrite this was replaced with Spigot's RayTraceResult, since it was a direct substitute.

  • Almost all of the rayCasting methods were replaced with rayTracing calcs provided by Spigot. Performing rayTrace on blocks considers their exact collision meshes. This also meant that raytrace for fluids did not need to be considered separately.

  • Default fluid collision was changed to ALWAYS

  • Default ignoreNonCollidable is set to TRUE, AKA allowing players to more consistently target through non-collidable blocks such as grass or flowers.

  • Versions 1.14.4 and later will use the new Physics rewrite

  • Versions 1.17 and later will use the same Version Handler. There are notes in the class files detailing how to update for future versions

  • Raycasting now by default uses point priority. Meaning it will prioritize the target at the player's cursor first, before tracing a capsule around said raytrace. This has resulted in exponentially more accurate targeting and a way better player experience.

  • Most raytraces have been reduced in complexity hence aiding in reducing server lag and latency.

  • Added 1.18 and 1.18.1 support

  • Reverted to Java 11 for backwards compatibility. This still works with the latest versions of Minecraft
KNOWN ISSUES

  • Hidden custom durability currently does not work properly, it tends to duplicate the hidden lore and doesn't read it properly for some reason. Hence it has been disabled, custom durability will always show now
  • For methods using a HoverEvent to show an item in chat, this will no longer show an item. This is because this uses NMS to get an ItemStack as an NBT compound. The future solution to this is to manually write out an ItemStack based on its Meta and other data. However this would be quite a complex and extensive implementation
SKILLS
  • Removed any use of NMS as this caused the skills to then break on certain versions.
  • Updated the dependencies that many of the skills use
  • Initially updated to Java 17, but reverted to Java 11 for backwards compat
  • The skills will be built with 1.17, however they were all tested with an older version of Spigot for backwards compat sake.
  • Added minimum required versions for some skills which utilized version specific features
  • Fixed the Forage skill as it did not handle Nether biomes properly for NMS
  • IMPORT NOTE FOR FUTURE DEVELOPERS I replaced the use of getHighestItemDamage as this was recently changed in the latest Heroes update. It is now deprecated, so please use getFlatItemDamage(Hero hero, Material item) instead. This change was made because getHighestItemDamage actually calculates PvP/PvE scaling which SHOULD NOT be called in a skill. Since when calling the skills' damageEntity() method, this is what does PvP/PvE scaling. The method, getFlatItemDamage() will calculate the damage of the Heroes currently HELD item, considering mainhand and offhand item attributes before using a class's specified damage for that weapon.
----------, Dec 28, 2021

Moved calculations around and renamed methods for better consistency. Also fixed damage per level.
----------, Dec 7, 2021

This took an insane amount of work to get to the current state.
  • Upgraded GRADLE to latest
  • Upgraded pipelines
  • Upgraded to java 16+ (from java 8!)
  • Numerous other fixes and things
Special thanks to the amazing Tommo!

Please let us know if you find bugs. 1.17 SKILLS will be coming soon! Please be patient - any skill with NMS will NOT function.



----------, Nov 25, 2021

*** DO NOT RUN ON PRODUCTION UNTIL TESTING AGAINST DEV/TEST ***

Once we have confirmation there's no issues, we will push a release candidate as the final slew of fixes for 1.16.x


>
Fixed a number of issues plaguing the way Heroes handled items, their damage and modifiers. Below are the list of changes

Added an alternative for a deprecated method when configuring enchantments. Now you can use their proper names to configure them (which is the non-deprecated method). For example, instead of DAMAGE_ALL, SHARPNESS can be used.

Item's with damage attribute modifiers will override any damage configured in class or global damages. If no class or global damage is set and item has no attribute modifiers, then will use default vanilla value.

An item's damage (including modifiers) will be calculated before applying class scaling (which includes adding enchant damage, strength damage and PvP/PvE scaling.)

Any item that does not have any attribute modifiers and no specified class/global/vanilla damage then it will not be affected by class scaling and will do a damage of 1.

Additionally, attribute modifiers with different operations will now work correctly. Before if an item had both mainhand and offhand slotted modifiers, it would just add both. Now it will consider if the items are being used in the correct slot and perform the necessary calculations; (additive, percentile or multiplicative).

Overall priorities of item damage is as follows; Item Attribute Modifier Damage > Class Damage > Global Damage > Vanilla Damage
----------, Nov 7, 2021

  1. 26 Sep, 2021 1 commit
  2. 25 Sep, 2021 3 commits
  3. 19 Sep, 2021 1 commit
  4. 12 Sep, 2021 6 commits
  5. 11 Sep, 2021 4 commits
  6. 05 Sep, 2021 2 commits
  7. 04 Sep, 2021 2 commits
  8. 03 Sep, 2021 1 commit
  9. 02 Sep, 2021 4 commits
  10. 28 Aug, 2021 1 commit
  11. 22 Aug, 2021 1 commit
  12. 20 Aug, 2021 2 commits
----------, Oct 13, 2021

----------, Jul 7, 2021

  1. 19 Apr, 2021 2 commits
  2. 18 Apr, 2021 1 commit
  3. 17 Apr, 2021 1 commit
  4. 12 Apr, 2021 2 commits
  5. 11 Apr, 2021 1 commit
  6. 07 Apr, 2021 1 commit
  7. 21 Mar, 2021 5 commits
  8. 08 Mar, 2021 3 commits
  9. 14 Feb, 2021 4 commits
  10. 06 Feb, 2021 2 commits
  11. 03 Feb, 2021 1 commit
  12. 26 Jan, 2021 1 commit
  13. 25 Jan, 2021 1 commit
----------, Apr 28, 2021

  1. 23 Jan, 2021 2 commits
  2. 19 Jan, 2021 2 commits
  3. 03 Jan, 2021 2 commits
  4. 01 Jan, 2021 2 commits
  5. 31 Dec, 2020 3 commits
  6. 29 Dec, 2020 2 commits
  7. 26 Dec, 2020 3 commits
  8. 18 Dec, 2020 1 commit
  9. 12 Dec, 2020 8 commits
  10. 03 Dec, 2020 1 commit
  11. 29 Nov, 2020 3 commits
----------, Jan 25, 2021

This is a BETA version, do not use on live servers before TESTING first. Please us know of any bugs.
----------, Nov 29, 2020

PLEASE NOTE THIS IS A BETA BUILD, DO NOT USE ON LIVE SERVERS.

Please retest and give feedback
----------, Sep 28, 2020

PLEASE NOTE - BETA BUILDS ARE UNSTABLE AND MAY/MAY NOT WORK IN LIVE ENVIRONMENTS!

Thanks to @MysticMight for the insane support!
A new build will be uploaded to enable 1.16.2/3 support. Thanks for the feedback!

passed
#191970322

latest
[​IMG]
dev-1.16.2/3 72e3bb94
[​IMG] add race to paths command description.
00:04:27

1 week ago

passed
#191970087

latest
[​IMG]
legacy c6b6fc9b
[​IMG] add nms tips
00:08:54

1 week ago

passed
#191968449


[​IMG]
dev-1.16.2/3 c2ef71bc
[​IMG] default tools command to use all of the player's current classes if no class specified
00:04:22

1 week ago

passed
#191927273


[​IMG]
dev-1.16.2/3 3103f4dc
[​IMG] add piglin brute
00:04:43

1 week ago

passed
#191923671


[​IMG]
dev-1.16.2/3 da652a57
[​IMG] update nms and add tips
00:06:47

1 week ago

passed
#174095133

latest
[​IMG]
dev fb440948
[​IMG] add targeting meta description for targetted skills
00:09:23

1 month ago

passed
#174093880

latest
[​IMG]
dev-1.16.1 fb440948
[​IMG] add targeting meta description for targetted skills
00:07:33

1 month ago

passed
#174025990


[​IMG]
legacy c32eb4b8
[​IMG] fix sound errors for atleast 1.8 versions
00:12:49

1 month ago

passed
#173213633


[​IMG]
legacy 27a35984
[​IMG] add targeting meta description for targetted skills
00:09:09

1 month ago

passed
#170673632


[​IMG]
dev-1.16.1 f3f8c056
[​IMG] Add NonNull to NMSHandler methods for get/set offhand (also didn't add onlyIfOffhandExists as all 1.13+ have offhand), and properly return offhand item from getter for base case. Also fix logic error for isCurrentSlotFull().
00:05:26

2 months ago

passed
#170666823


[​IMG]
legacy 159f0de5
[​IMG] deprecate redundant Util set/get offhand methods in favor of NMSHandler methods. Also fix logic error for isCurrentSlotFull()
00:06:42

2 months ago

passed
#170638589


[​IMG]
legacy f6ce06cd
[​IMG] make some missed mainhand usages version compat with atleast 1.8
00:09:23

2 months ago

passed
#169935208


[​IMG]
legacy c2472ed0
[​IMG] fix food consumable in combat and remove redundant quote escaping. Also minor null check change.
00:07:34

2 months ago

passed
#169863032


[​IMG]
dev-1.16.1 4cbf73d4
[​IMG] minor null check change
00:04:11

2 months ago

passed
#169856932


[​IMG]
dev-1.16.1 864a45b7
[​IMG] fix spacing of heal,mana, stamina, shield commands. Also display of shield number. Some nullables.
00:06:18

2 months ago

passed
#169811869


[​IMG]
legacy 90638978
[​IMG] fix spacing of heal,mana, stamina, shield commands. Also display of shield number.
00:06:42

2 months ago

passed
#169777887


[​IMG]
legacy 6bea8471
[​IMG] some nullables
00:09:30

2 months ago

passed
#169248121


[​IMG]
dev-1.16.1 2d13c266
[​IMG] properly allow tools not already weapons, such as shears.
00:05:30

2 months ago

passed
#169238713


[​IMG]
legacy 208966c3
[​IMG] fix picks appearance in info command based on new useToolsInPermittedWeapons logic
00:09:19

2 months ago

passed
#168221880

latest
[​IMG]
latest-premium 399f026b
[​IMG] fix Missile#setVelocity, previously didn't assign to field.
00:05:04

2 months ago
----------, Sep 26, 2020

Special thanks to @MysticMight

  1. 25 Jul, 2020 2 commits
  2. 23 Jul, 2020 5 commits
  3. 21 Jul, 2020 1 commit
  4. 20 Jul, 2020 1 commit
  5. 19 Jul, 2020 2 commits
  6. 18 Jul, 2020 5 commits
  7. 17 Jul, 2020 1 commit
  8. 15 Jul, 2020 3 commits
  9. 12 Jul, 2020 4 commits
  10. 08 Jul, 2020 4 commits
  11. 04 Jul, 2020 1 commit
----------, Jul 25, 2020


Please let us know if this fixes the damage bug issue.
----------, Mar 17, 2020


Stages
passed
#113796790
latest

dev-1.14 067de9b5
MrMaurice211's avatar
Downgraded shadowJar dependency.

00:05:55

1 day ago

failed
#112191108

dev-1.14 17c129b4
MysticMight's avatar
Merge branch 'dev' into 'dev-1.14'

00:01:24

6 days ago

failed
#111901298

dev-1.14 88881135
MrMaurice211's avatar
1.15 is now shaded...

00:01:23

1 week ago

failed
#111791115

dev-1.14 edce5ff0
MrMaurice211's avatar
Added 1.15 compatibility to Properties.

00:01:29

1 week ago

failed
#111790674

dev-1.14 3b8b7470
MrMaurice211's avatar
First draft for 1.15

00:01:31

1 week ago

passed
#108641417
latest

dev 8efef316
MysticMight's avatar
clarify first/master swap free config settings for profession as well


00:10:09

2 weeks ago

failed
#108640350
latest

legacy 0e976466
MysticMight's avatar
clarify first/master swap free config settings for profession as well


00:05:06

1 week ago

failed
#104763409

legacy 4f1e082c
MysticMight's avatar
armor weight fix? and minor comments


00:03:22

1 month ago

passed
#104761721

dev 8dd8b8e0
MysticMight's avatar
armor weight fix? and minor comments


00:08:22

1 month ago

passed
#104759498

dev 28788ccd
MysticMight's avatar
attempt to fix new 1.14 nms change


00:09:26

1 month ago

passed
#103137068

dev 2288a367
MysticMight's avatar
add max level to citizen example class


00:08:45

1 month ago

failed
#103134911

legacy a42a0c38
MysticMight's avatar
fix checking offhand for legacy versions without a offhand


00:04:16

1 month ago

passed
#99732602

dev ec8cb628
MysticMight's avatar
replace bed reagents with red bed for default classes


00:08:58

2 months ago

failed
#99725950

legacy 7f0673ae
MysticMight's avatar
add max level to citizen example class


00:04:11

2 months ago

failed
#99158571

legacy 08b975bc
MysticMight's avatar
add filter for primary, secondary and race for paths command.


00:04:27

2 months ago

passed
#98281041

dev 7845bef3
MysticMight's avatar
Fix scoreboard formatting.


00:09:57

2 months ago

failed
#98128218

legacy 8c3ee370
MysticMight's avatar
fix max health and armor attribute compatibility. Note armor mitigation is only supported for 1.9+


00:03:57

2 months ago

failed
#91222797

legacy 42a924ee
MysticMight's avatar
add back 1.7 compat


00:04:12

3 months ago
----------, Feb 1, 2020

  1. 01 Dec, 2019 1 commit
  2. 25 Nov, 2019 1 commit
  3. 08 Oct, 2019 1 commit
  4. 28 Sep, 2019 2 commits
----------, Dec 2, 2019

Only if you're using 1.14 - please test before live use.
----------, Sep 10, 2019

Let us know if it didnt work!
----------, Sep 6, 2019

Let us know if you have issues!
----------, Sep 4, 2019

The long awaited 1.14 updated. Special thanks to @MrMaurice211 for the assistance

Let us know what issues you find, there are some known issues, the "shield" yellow heart stat may not be increasing. I consider this usable in a test/beta environment but YMMV in a production environment until we get more user testing.

SOME PREMIUM SKILLS WILL NOT FUNCTION IF THEY DEPEND ON NMS, AN UPDATE WILL BE COMING FOR PREMIUM SKILLS.


  1. 23 Aug, 2019 4 commits
  2. 19 Aug, 2019 2 commits
  3. 18 Aug, 2019 3 commits
  4. 01 Aug, 2019 1 commit
  5. 31 Jul, 2019 2 commits
  6. 25 Jul, 2019 1 commit
  7. 23 Jul, 2019 1 commit
  8. 21 Jul, 2019 6 commits
  9. 20 Jul, 2019 3 commits
  10. 11 Jul, 2019 3 commits
----------, Aug 23, 2019

There are several reworks and changes on this update that gave some quality of life changes to the Heroes users. The dev @Delfofthebla has rebased the plugin on his new design and several things have changed and been added.

You now have new functionality in config.yml allowing for custom durabilitys and various other things that are more robust. The config.yml has been updated on the wiki.

In addition, some skill changes have been made. This will need some testing and feedback to ensure everything is functional, please do not use on live servers, test only if possible.
----------, May 29, 2019

Some fixes for 1.13 and armor calc changes.

  1. 05 Apr, 2019 1 commit
  2. 31 Mar, 2019 3 commits
  3. 30 Mar, 2019 1 commit
  4. 24 Mar, 2019 1 commit
  5. 19 Mar, 2019 1 commit
----------, Apr 7, 2019

[​IMG]
add on class mastery run commands
MysticMight authored 1 day ago

674e4059
27 Mar, 2019 3 commits
[​IMG]
Merge branch 'legacy-class-mitigation' into 'legacy'
MysticMight authored 1 week ago

cae41a9c
[​IMG]
some cleanup
MysticMight authored 1 week ago

b1fb0caa
[​IMG]
further work on mitigation, class based values are now influence the event...
MysticMight authored 1 week ago

574a5497
24 Mar, 2019 2 commits
[​IMG]
WIP mitigation base on class configs
MysticMight authored 2 weeks ago

e5d2a40f
[​IMG]
Modifying the default damage formula to apply a flat damage reduction percent...
MysticMight authored 2 weeks ago

d6b891c2
19 Mar, 2019 1 commit
[​IMG]
add default enchanter config properly
MysticMight authored 2 weeks ago

e23eb0a3
08 Mar, 2019 1 commit
[​IMG]
improve reapplication of effect
MysticMight authored 1 month ago

bad2cc12
07 Mar, 2019 1 commit
[​IMG]
more testing effects
MysticMight authored 1 month ago

1ef96e2e
03 Mar, 2019 3 commits
[​IMG]
properly consider X mastered classes for swapWithMasteriesHasFullCost
MysticMight authored 1 month ago

55891ad0
[​IMG]
add default options for configurable full cost if hero has mastered X classes to config
MysticMight authored 1 month ago

c91b3928
[​IMG]
add per level class/prof/race change cost + configurable full cost if hero has...
MysticMight authored 1 month ago

330bd14b
25 Feb, 2019 1 commit
[​IMG]
add TODO - recipes
MysticMight authored 1 month ago

4dea84df
10 Feb, 2019 4 commits
[​IMG]
fix ticks duration of potion effect and minor changes
MysticMight authored 1 month ago

7d70ab00
[​IMG]
use proper potion effect type name, add debug and remove check.
MysticMight authored 1 month ago

e91f5622
[​IMG]
improve potion skills description to add effects + change separator to colon.
MysticMight authored 1 month ago

2625d95b
[​IMG]
add potion skills
MysticMight authored 1 month ago

725541ba
----------, Apr 7, 2019

Changes
Updated:

New admin command to bind, enchanter improvements and fix crafting glitches.
Several public skill fixes and introduced a few new skills!

#881 (Jan 29, 2019 10:54:00 AM)

  1. update spawnparticle so more particles can be tested. — mysticmight / gitlab
  2. make spawnparticle handle force and improve error and info messages — mysticmight / gitlab
  3. update spawnparticle usage — mysticmight / gitlab
#880 (Jan 28, 2019 4:01:49 PM)
  1. add admin bind command and improve default enchanter. Also fix crafting — mysticmight / gitlab
  2. add default verbose settings — mysticmight / gitlab
#879 (Jan 19, 2019 6:12:53 PM)
  1. Updating to a later version of HeroChat. — Delfofthebla / gitlab
  2. Adding back the old methods but with deprecated tags. — Delfofthebla / gitlab
#876 (Jan 16, 2019 9:02:54 PM)
  1. Trying to get the 1.13.2 stuff working. — Delfofthebla / gitlab
  2. Updating version to 1.9.1 — Delfofthebla / gitlab
  3. Trying to fix some dependency problems and remove compiler warnings. — Delfofthebla / gitlab
----------, Jan 29, 2019

Some other minor changes.
----------, Jan 12, 2019


This represents what we think is mostly stable and tested. Some things may still need to be tested. Please note that crafting recipe restrictions are not working.


  1. 30 Dec, 2018 3 commits
  2. 25 Dec, 2018 1 commit
  3. 24 Dec, 2018 2 commits
  4. 23 Dec, 2018 1 commit
  5. 22 Dec, 2018 1 commit
  6. 20 Dec, 2018 2 commits
  7. 07 Dec, 2018 1 commit
  8. 06 Dec, 2018 1 commit
  9. 05 Dec, 2018 1 commit
  10. 04 Dec, 2018 3 commits
  11. 02 Dec, 2018 1 commit
  12. 01 Dec, 2018 1 commit
  13. 29 Nov, 2018 1 commit
  14. 28 Nov, 2018 1 commit
  15. 27 Nov, 2018 1 commit
----------, Jan 1, 2019

Tons of bug fixes new features, @MysticMight handled a majority of this with @Soren025 ---- They may have a more indepth change log.

  1. 01 Jan, 2019 1 commit
  2. 30 Dec, 2018 3 commits
  3. 25 Dec, 2018 2 commits
  4. 24 Dec, 2018 2 commits
  5. 23 Dec, 2018 2 commits
  6. 14 Dec, 2018 1 commit
  7. 06 Dec, 2018 1 commit
  8. 25 Nov, 2018 2 commits
  9. 24 Nov, 2018 1 commit
  10. 19 Nov, 2018 1 commit
  11. 18 Nov, 2018 4 commits
  12. 17 Nov, 2018 1 commit
  13. 16 Nov, 2018 3 commits
  14. 15 Nov, 2018 1 commit
  15. 14 Nov, 2018 2 commits
  16. 11 Nov, 2018 1 commit
  17. 06 Nov, 2018 2 commits
  18. 05 Nov, 2018 2 commits
  19. 26 Oct, 2018 1 commit
  20. 24 Oct, 2018 5 commits
  21. 22 Oct, 2018 1 commit
  22. 21 Oct, 2018 2 commits
  23. 15 Oct, 2018 1 commit
  24. 14 Oct, 2018 1 commit
  25. 13 Oct, 2018 6 commits
  26. 12 Oct, 2018 3 commits
  27. 10 Oct, 2018 3 commits
  28. 09 Oct, 2018 1 commit
  29. 02 Oct, 2018 1 commit
  30. 25 Sep, 2018 1 commit
----------, Jan 1, 2019

  1. 20 Nov, 2018 4 commits
  2. 19 Nov, 2018 2 commits
  3. 18 Nov, 2018 1 commit
  4. 17 Nov, 2018 2 commits
  5. 16 Nov, 2018 1 commit
  6. 15 Nov, 2018 3 commits
  7. 14 Nov, 2018 2 commits
----------, Dec 4, 2018

  1. 11 Nov, 2018 1 commit
  2. 10 Nov, 2018 3 commits
  3. 09 Nov, 2018 2 commits
  4. 08 Nov, 2018 1 commit
  5. 06 Nov, 2018 2 commits
  6. 05 Nov, 2018 3 commits
  7. 26 Oct, 2018 2 commits
  8. 24 Oct, 2018 7 commits
  9. 22 Oct, 2018 1 commit
  10. 21 Oct, 2018 9 commits
  11. 20 Oct, 2018 2 commits
  12. 19 Oct, 2018 3 commits
  13. 17 Oct, 2018 3 commits
----------, Nov 13, 2018

Let us know if you have any issues with this.
----------, Oct 18, 2018

Please note:
Recipes restrictions are currently broken as we transition into 1.13.
----------, Oct 11, 2018

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
NOT for a production environment. USE AT YOUR OWN RISK
THIS WILL ONLY SUPPORT 1.13
1.12 and below will be LEGACY builds.

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*


We will try our best to support LEGACY versions for as long as we can.

Required Depends Updates
EffectLib 6.1 (skills)
Vault 1.6.7 (later it will be able to use 1.7.1)

SKILL PACKS will be updated later

Please report issues you see, some skills may have oddities. I believe this is in a "usable" state but will go faster if we get your help with bug reports.

Thanks!
Dev notes
https://paste2.org/M976LMD3
----------, Oct 8, 2018

THIS IS NOT 1.13 or 1.13.1 update.

This should fix some rare conditions of the SQL database not being setup correctly.
This is not a required update.
----------, Aug 26, 2018

If you're having problems with the last build, use this one.
----------, Aug 8, 2018

Notable changes: Thanks to @MysticMight for a lot of the reworks :)

Code (Text):
classes:
  first-swap-free-race: true
  old-race-swap-cost: 0
  race-swap-cost: 100
properties:
  combat-enter-message: You have entered combat!
  combat-exit-message: You have left combat!
Code (Text):
Skills.yml
Damaging Skills
  pve-damage-multiplier: 1.2
  pve-damage-multiplier-increase-per-level: 0.055
  pvp-damage-multiplier: 1.2
  pvp-damage-multiplier-increase-per-level: 0.055
Healing Skills
  is-scaled-healing: true
  healing-scale-expression: 1.03^level
Changes
  1. fix stats spacing (detail / gitlab)
  2. add firstSwitchFreeRace, raceSwapCost and oldRaceSwapCost properties (detail / gitlab)
  3. optimise (detail / gitlab)
  4. attempt to move database info to database.yml from config.yml (detail / gitlab)
  5. add debug logs for database config (detail / gitlab)
  6. try loading database config from current directory (detail / gitlab)
  7. Revert "try loading database config from current directory" (detail / gitlab)
  8. Revert "add debug logs for database config" (detail / gitlab)
  9. Revert "attempt to move database info to database.yml from config.yml" (detail / gitlab)
  10. add pvp damage scaling (item, projectile, skill). May not be complete, (detail / gitlab)
  11. add firstSwitchFreeRace and other race config properties to the config. (detail / gitlab)
  12. Update plugin.yml (detail / gitlab)
  13. Remove duplicate perm (detail / gitlab)
  14. Update plugin.yml (detail / gitlab)
  15. add per level scaled mana regen (detail / gitlab)
  16. make reagants able to be not consumed (but still required for skill). (detail / gitlab)
  17. Revert "make reagants able to be not consumed (but still required for (detail / gitlab)
  18. Refund steed reagent (saddle) to player if consumption isn't enabled. (detail / gitlab)
  19. dreadsteed: make sure player cannot receive a saddle if already took (detail / gitlab)
  20. dreadsteed: make sure saddle is redeemed if steed lifetime is reached. (detail / gitlab)
  21. stop setting default heal scaling parameters for all active skills (detail / gitlab)
  22. add debug messages and user messages for dreadsteed. (detail / gitlab)
  23. redeem saddle on unmount and additional debug message (detail / gitlab)
  24. revert base steed adjustments (now exists on dev-racestesting branch) (detail / gitlab)
  25. add debug codes to basesteed (to see if original code had player leave (detail / gitlab)
  26. test to see if listener is being registered twice (when also used in (detail / gitlab)
  27. remove debug message and re-add listener (detail / gitlab)
  28. add temporary fix for duplicate redeemed saddle on dismount (due to (detail / gitlab)
  29. add customisable enter and exit messages for combat (edit text in (detail / gitlab)
  30. add back default race methods (to remove getting default profession as (detail / gitlab)
  31. add race reset command (built mainly for testing on test) and fix reset (detail / gitlab)
[​IMG]
[​IMG] Changes
  1. make heal scaling before wisdom increase for heals based on (detail / gitlab)
  2. refactor SkillSetting enum for scaled healing parameters (detail / gitlab)
  3. add getScaledHealing method to active skills (as many of these use (detail / gitlab)
  4. increment version (detail / gitlab)
Changes
  1. Add races command to list only races. Fix hero paths log message. (detail / gitlab)
  2. Fix hero paths already race message. (detail / gitlab)
  3. register races command (detail / gitlab)
----------, Aug 2, 2018

RACE UPDATE/FIXES + API updates for Skill Extensions/Healing changes.

If you're coming from an existing database on the Races update, you will need to edit some stuff for SQL to work. A fresh database WONT have these issues. Please always use a test setup before updating to a production environment. Blindly updating can be painful for your users.

Update Heroes and keep the server offline. Log into a user that can make edits to SQL and the database you're under - you can do this via GUI or Commandline.
If table RPG_HeroInfo exists:
Create column "CurrentRace"
  • INT
  • Allow nulls
  • Default: NULL
Create Foreign Key: fk_RPG_HeroInfo_RPG_ClassIndex3
  • Columns: CurrentRace
  • Reference Table: RPG_ClassIndex
  • Foreign Column: ClassID
  • On Update: Restrict
  • On Delete: Restrict
Command line > (Must use/select your database where heroes is stored)
1. Add Column
SHOW TABLE STATUS LIKE 'RPG_HeroInfo';
ALTER TABLE `RPG_HeroInfo`
ADD COLUMN `CurrentRace` INT(11) NULL DEFAULT NULL AFTER `CurrentProfession`;

2. Add FK data
ALTER TABLE `RPG_HeroInfo`
ADD CONSTRAINT `fk_RPG_HeroInfo_RPG_ClassIndex3` FOREIGN KEY (`CurrentRace`) REFERENCES `RPG_ClassIndex` (`ClassID`);


Changes
#830 (Jul 10, 2018 12:01:24 AM)
  1. add healing scale to heal skill description — MysticMight / gitlab
  2. add log entry to further investigate extra golden hearts issue — MysticMight / gitlab
  3. Revert "add log entry to further investigate extra golden hearts issue" — MysticMight / gitlab
  4. Lets try shoveling in PlayerInfo stuff for this. — Kainzo / gitlab
  5. add null check for class name (e.g. for races) — MysticMight / gitlab
#829 (Jun 19, 2018 12:19:22 PM)
  1. add effect for mana & stamina regen percentage increase & implement — MysticMight / gitlab
  2. refactor superclass for constant percent increase effects — MysticMight / gitlab
  3. add optional healing scale based on expression. (Still to be tested) — MysticMight / gitlab
  4. increment version — MysticMight / gitlab
  5. copy classchangeevent into afterclasschangeevent, rather then extend — MysticMight / gitlab
  6. add cancelling to afterclass change event — MysticMight / gitlab
#828 (Jun 15, 2018 2:09:36 PM)
  1. Update plugin.yml — Kainzo / gitlab
#827 (Jun 15, 2018 1:22:19 AM)
  1. add effect for max mana percentage increase & implement max mana — MysticMight / gitlab
  2. add effect for max stamina percentage increase & implement stamina — MysticMight / gitlab
  3. fix effect type typo — MysticMight / gitlab
#826 (Jun 15, 2018 1:19:49 AM)
  1. Update plugin.yml — Kainzo / gitlab
#825 (Jun 11, 2018 4:20:49 PM)
  1. change passive skill behavior to apply after class change (rather then — MysticMight / gitlab
----------, Jul 10, 2018

This isnt a required update but this pushes off the requirement to have a default-race.

There are some oddities still with this update and they will be fixed.

This also fixes some issues with some defaults regarding the permission skills.
----------, Jun 5, 2018

Heroes: Races (1.8.14)
There may be bugs!

YOU MUST SET A DEFAULT-RACE with this build - CREATE A NEW CLASS AND SET THE OPTION (This is not a requirement in the later versions!)
"default-race: true"

You are able to create and set races just like classes. Everything is exactly the same - all "class" things are referrenced to races.
Base Heroes has assigned HUMANS, ORCS, DWARVES and ELVES. From there, you can code skills/levels/etc to grant to them skills.
Later, you will be able to set race affilation so races will have a ALLY and ENEMY to create a race system for PVP. Allies will be groupable and Enemies will be PVPable.

Races require a default race.
Races can have different equipment alottments and restrictions
Races act just like classes in almost every way
Races can have skills attached to them (passive or active just like classes)
Races can have set attributes
Races later will have optional different server skins for that race (when we figure out the best way to do this).
Races are the "third" class.

Other Fixes:
Updated HairkiCP SQL to the latest version
----------, Jun 4, 2018

Not a necessary update unless you want a very specific API change.
----------, May 14, 2018

First pass of 1.8 issues... could use some testing, not a required update.
----------, May 11, 2018

This update is not required / suggested unless you are using Magic by @NathanWolf
----------, Apr 19, 2018

In each class you are now able to set a specific power scaling for the attribute you desire.

Code (Text):

max-health:
 scaling: power
 base: 500
 per-level: 5
 power: 1.5
max-projectile-damage:
 scaling: power
 base: 10
 per-level: 5
 power: 1.5
max-item-damage:
 scaling: power
 base: 5
 per-level: 5
 power: 1.5
max-mana:
 scaling: power
 base: 250
 per-level: 5
 power: 1.5
max-shield:
 scaling: power
 base: 500
 per-level: 5
 power: 1.5
 


Notes:
#814 (Feb 8, 2018 7:53:12 PM)

  1. Update configs. — Kainzo / gitlab
#813 (Feb 8, 2018 6:25:41 PM)
  1. Change Scaling to be based on a specific class' level rather than — dkabot / gitlab
  2. Change two other uses of getHeroLevel() that really shouldn't be that — dkabot / gitlab
  3. Add some TODOs to the Party class for some other time. — dkabot / gitlab
----------, Feb 9, 2018

This should resolve any issues with public skills.
May need more testing in this case, though.
----------, Dec 13, 2017

#811 (Dec 7, 2017 11:06:05 PM)
  1. Fix BaseTotem and BaseSummonEntity for 1.12. — dkabot / gitlab
  2. Change name of UltimateCheckClassesCommand to not conflict with — dkabot / gitlab
  3. Fix BaseSteed so that users actually get mounted again, and remove the — dkabot / gitlab
  4. Remove setCharacter(), setEffect() and the Cancellable implementation — dkabot / gitlab
  5. Make addEffect(), removeEffect() and manualRemoveEffect() in — dkabot / gitlab
  6. Make hero info separate from hero whois, and give it permission nodes — dkabot / gitlab
  7. Add EffectType.TAUNT so that we can flag any taunting Effects in a — dkabot / gitlab
#810 (Dec 7, 2017 9:56:41 AM)
  1. Start with a `HeroDamage` attribute that we can more effectivly — soren.endon / gitlab
  2. Update heroes with relic changes. — soren.endon / gitlab
  3. Fix an incorrect return type. Update application of attributes to heros — soren.endon / gitlab
  4. Implement several attributes (Health, Mana, Mana Regen, Stamina, — soren.endon / gitlab
#809 (Nov 15, 2017 7:56:21 PM)
  1. Potential fix to exp boost perms that may have been broken for over a — soren.endon / gitlab
#808 (Nov 9, 2017 2:39:29 PM)
  1. something that didn't get staged? — soren.endon / gitlab
#807 (Nov 9, 2017 2:32:53 PM)
  1. Only require access to the skill if preparing via admin command. — soren.endon / gitlab
#806 (Nov 9, 2017 2:29:08 PM)
  1. Clear prepared skills first when changing class. (don't think this will — soren.endon / gitlab
#805 (Nov 9, 2017 2:01:11 PM)
  1. Comment out arrow damage debugging. — soren.endon / gitlab
#804 (Nov 9, 2017 1:59:32 PM)
  1. Debug messages — soren.endon / gitlab
  2. Implemented stamina drain on mana regen. Implemented mana regen — soren.endon / gitlab
  3. Remove support for stamina `stop-regen` with `mana-regen` as the idea — soren.endon / gitlab
#803 (Nov 5, 2017 7:52:44 PM)
  1. Debug messages. — soren.endon / gitlab
  2. Add more debug messages, re add messages that are supose to be sent to — soren.endon / gitlab
  3. More debug messages — soren.endon / gitlab
  4. Fixxed issue with stamina regen stopping. Was an issue with — soren.endon / gitlab
#802 (Nov 5, 2017 5:19:38 PM)
  1. Implement use of properties class to store config stuff I reciently — soren.endon / gitlab
#801 (Nov 5, 2017 4:01:21 PM)
  1. Created item stamina cost attribute, also changed the name of the — soren.endon / gitlab
  2. Move stamina costs over to the `config.yml` instead of configurable in — soren.endon / gitlab
  3. Fix some stuff — soren.endon / gitlab
  4. Quest for arrow damage borkness — soren.endon / gitlab
  5. Quest to find borked arrow damage — soren.endon / gitlab
  6. Borked Quest Damage Arrow — soren.endon / gitlab
  7. Reduce stamina, not max stamina. — soren.endon / gitlab
  8. Save stamina cost to nbt so it doesn't get wiped on equip (and possible — soren.endon / gitlab
  9. alter where stamina cost is shown. — soren.endon / gitlab
  10. scale stamina cost of shooting a bow off the force of the draw (didn't — soren.endon / gitlab
  11. comment out debug messages. — soren.endon / gitlab
#800 (Nov 3, 2017 4:26:24 PM)
  1. Fix compiler error (oops) — soren.endon / gitlab
#799 (Nov 3, 2017 3:28:38 PM)
  1. Removed firework from level up as it was damaging players. — soren.endon / gitlab
  2. Damage tick testing. — soren.endon / gitlab
  3. Actually damage tick testing — soren.endon / gitlab
  4. more testing — soren.endon / gitlab
  5. oops — soren.endon / gitlab
  6. Testing damage immunity tick configuration. — soren.endon / gitlab
  7. add support for prepare points scaled per level. — soren.endon / gitlab
  8. Change `AmpItems` to `Relics` when listening via plugin name. — soren.endon / gitlab
  9. Delay class command runs — soren.endon / gitlab
#797 (Oct 30, 2017 3:30:54 PM)
  1. Added learned and prepared state to the skill list command. — soren.endon / gitlab
  2. fix format — kashike / gitlab
  3. fix format 2 — kashike / gitlab
#796 (Oct 30, 2017 1:02:33 PM)
  1. Added stamina cost to shooting a bow. — soren.endon / gitlab
  2. Testing titles through command dispatching. — soren.endon / gitlab
  3. Add the minecraft prefix to the title commands to possibly make it — soren.endon / gitlab
  4. correctly add a space between the player and the type of title. — soren.endon / gitlab
  5. Add the firework. — soren.endon / gitlab
  6. Finishing polish on level up title and firework. — soren.endon / gitlab
#795 (Oct 26, 2017 9:42:30 AM)
  1. Implement more features for max stamina. — soren.endon / gitlab
  2. Remove the `addMaxStamina`, `removeMaxStamina` and `clearMaxStamina` — soren.endon / gitlab
  3. Change max stamina to scale off of endurance instead of constitution. — soren.endon / gitlab
  4. Correct lazy if syntax that may be the cause of being able to prepare — soren.endon / gitlab
#794 (Oct 25, 2017 10:05:46 AM)
  1. Some testing debugs — soren.endon / gitlab
  2. testing player interaction options — soren.endon / gitlab
  3. Don't ignore cancelled to see if we can interact with air now. — soren.endon / gitlab
  4. Remove animation debug — soren.endon / gitlab
  5. Tweak stamina to work "better" for attacking stuff — soren.endon / gitlab
  6. Re add combat check, add checks for damage cause and implemented flag — soren.endon / gitlab
  7. Revert "Change the slow amplifier to 2 for cast slowing." — soren.endon / gitlab
  8. Revert "prevent jumping while casting." — soren.endon / gitlab
----------, Dec 11, 2017

guard against null player when applying boost
----------, Aug 3, 2017

This should resolve several issues with any skill that were held back from 1.12
----------, Jul 25, 2017

  • Fix the damage multipliers for 1.12 servers.
  • Add a toggle for recipe disabling (enable-recipes: true/false)
----------, Jul 17, 2017

THIS IS A BETA BUILD - IT IS TESTED BUT MAY HAVE ERRORS

Please report anything you find.

This should function on 1.9 > 1.12 without issue.
----------, Jun 29, 2017

This should resolve some things with the scoreboard toggle.

Here's what it fixed
  • Allows for configuration in the sidebar/scoreboard
  • Resolves duplication heroes object message
  • Resolves multiple heart spam.

This took us a bit longer to debug, hopfeully this helps!
----------, May 9, 2017

Update to add in the public 1.11 skills to the pack (you will have to unzip)
----------, Apr 28, 2017

Allows for toggling of the scoreboard and if enabled configuring it.

Code (Text):

  scoreboard:
    enabled: true
    # The title of the scoreboard
    title: '§a§l⚠ Character ⚠'
    component:
      # The info component displays information about a Hero
      info:
        enabled: true
        title: '§3✪  Hero Info  ✪'
        class:
          enabled: true
          format:
            # {0} = class name
            # {1} = level
            # {2} = experience
            short: ' §4{0}§d L§f: §a{1}§f - {2}%'
            # {0} = class name
            # {1} = level
            # {2} = experience
            long: ' §4{0}§d Lvl§f: §a{1}§f - {2}%'
            long-length: 11
        health:
          enabled: true
          # {0} = current health
          # {0} = max health
          format: '§4 ❤  §c{0}§f / §c{1}'
          # If the health and mana lines should be merged when the threshold below is higher than the current health
          merge-mana: true
          merge-mana-threshold: 100
        mana:
          enabled: true
          # {0} = current mana
          # {0} = max mana
          format: '§9 ⦿  {0}§f / §9{1}'
        stamina:
          enabled: true
          # {0} = current stamina
          # {0} = max stamina
          format: '§3 ✳  {0}§f / §3{1}'
      party:
        enabled: true
        title: '§6✰  Party  ✰'
        # {0} = member name
        # {1} = member display name
        # {2} = health colour
        # {3} = health percentage as an integer
        member-format: ' {2}{0}§f: {2}{3}%'
 
----------, Apr 13, 2017

Changes
Config.yml
Code (Text):

healthbar:
  display-entity-health: true



#726 (Mar 19, 2017 4:05:52 PM)

  1. Add toggle for displaying entity health when damaged — payneaustin5 / gitlab
#725 (Mar 13, 2017 12:17:22 AM)
  1. Set encoding to utf-8 — kashike / gitlab
----------, Mar 19, 2017

Update MythicMobs integration to version 4.0

Changes

#724 (Mar 9, 2017 12:55:30 AM)
  1. Include relics api in shadow jar — payneaustin5 / gitlab

#723 (Mar 7, 2017 2:12:18 PM)

  1. Add class requirement attribute — payneaustin5 / gitlab
#722 (Mar 7, 2017 12:53:32 PM)
  1. Update last hero item set after checking which information should be — payneaustin5 / gitlab
#721 (Mar 7, 2017 12:43:37 PM)
  1. Update to renamed and refactored item plugin, called Relics — payneaustin5 / gitlab
#720 (Mar 6, 2017 5:26:31 AM)
  1. Update item api dependency and imports — payneaustin5 / gitlab
#719 (Mar 5, 2017 7:31:03 PM)
  1. Shorten hero item attribute lore text — payneaustin5 / gitlab
#718 (Feb 27, 2017 4:42:34 PM)
  1. Always register a new item listener — payneaustin5 / gitlab
#717 (Feb 27, 2017 4:37:49 PM)
  1. Update MythicMobs integration to version 4.0 — payneaustin5 / gitlab
#716 (Feb 27, 2017 4:36:29 PM)
  1. Support item plugin reloading — payneaustin5 / gitlab
#715 (Feb 26, 2017 4:37:42 PM)
  1. Fix config paths for base mana regen — payneaustin5 / gitlab
#714 (Feb 26, 2017 4:15:27 PM)
  1. Fix config path for food heal percent — payneaustin5 / gitlab
#713 (Feb 26, 2017 11:22:39 AM)
  1. Remove init method from ManagedScoreboard — kashike / gitlab
  2. Remove horrible method which is, thankfully, not used anymore — kashike / gitlab
  3. Exclude ancient from final JAR — kashike / gitlab
#712 (Feb 26, 2017 11:18:24 AM)
  1. Add initial integration with AmpItems, HeroItemAttribute and implement — payneaustin5 / gitlab
  2. Small compatibility changes — payneaustin5 / gitlab
  3. Simplify a couple lines — payneaustin5 / gitlab
#711 (Feb 26, 2017 10:42:13 AM)
  1. Replace symbols with character code — kashike / gitlab
#710 (Feb 26, 2017 7:20:01 AM)
  1. Include base attributes from hero class into attributes menu — payneaustin5 / gitlab
#709 (Feb 24, 2017 4:34:50 PM)
  1. Add projectile launch event handler back in — payneaustin5 / gitlab
#708 (Feb 23, 2017 2:34:41 PM)
  1. Add attack dmg nbt attribute modifier back in — payneaustin5 / gitlab
#707 (Feb 23, 2017 1:16:10 PM)
  1. Support 1.8-1.11+ in damage listener, add 1.11.2 to supported — payneaustin5 / gitlab
#706 (Feb 23, 2017 2:02:01 AM)
  1. Also comment out "environmental-damages:" in damages.yml — Kainzo / gitlab
----------, Mar 9, 2017

Update MythicMobs integration to version 4.0

Changes

#723 (Mar 7, 2017 2:12:18 PM)
  1. Add class requirement attribute — payneaustin5 / gitlab
#722 (Mar 7, 2017 12:53:32 PM)
  1. Update last hero item set after checking which information should be — payneaustin5 / gitlab
#721 (Mar 7, 2017 12:43:37 PM)
  1. Update to renamed and refactored item plugin, called Relics — payneaustin5 / gitlab
#720 (Mar 6, 2017 5:26:31 AM)
  1. Update item api dependency and imports — payneaustin5 / gitlab
#719 (Mar 5, 2017 7:31:03 PM)
  1. Shorten hero item attribute lore text — payneaustin5 / gitlab
#718 (Feb 27, 2017 4:42:34 PM)
  1. Always register a new item listener — payneaustin5 / gitlab
#717 (Feb 27, 2017 4:37:49 PM)
  1. Update MythicMobs integration to version 4.0 — payneaustin5 / gitlab
#716 (Feb 27, 2017 4:36:29 PM)
  1. Support item plugin reloading — payneaustin5 / gitlab
#715 (Feb 26, 2017 4:37:42 PM)
  1. Fix config paths for base mana regen — payneaustin5 / gitlab
#714 (Feb 26, 2017 4:15:27 PM)
  1. Fix config path for food heal percent — payneaustin5 / gitlab
#713 (Feb 26, 2017 11:22:39 AM)
  1. Remove init method from ManagedScoreboard — kashike / gitlab
  2. Remove horrible method which is, thankfully, not used anymore — kashike / gitlab
  3. Exclude ancient from final JAR — kashike / gitlab
#712 (Feb 26, 2017 11:18:24 AM)
  1. Add initial integration with AmpItems, HeroItemAttribute and implement — payneaustin5 / gitlab
  2. Small compatibility changes — payneaustin5 / gitlab
  3. Simplify a couple lines — payneaustin5 / gitlab
#711 (Feb 26, 2017 10:42:13 AM)
  1. Replace symbols with character code — kashike / gitlab
#710 (Feb 26, 2017 7:20:01 AM)
  1. Include base attributes from hero class into attributes menu — payneaustin5 / gitlab
#709 (Feb 24, 2017 4:34:50 PM)
  1. Add projectile launch event handler back in — payneaustin5 / gitlab
#708 (Feb 23, 2017 2:34:41 PM)
  1. Add attack dmg nbt attribute modifier back in — payneaustin5 / gitlab
#707 (Feb 23, 2017 1:16:10 PM)
  1. Support 1.8-1.11+ in damage listener, add 1.11.2 to supported — payneaustin5 / gitlab
#706 (Feb 23, 2017 2:02:01 AM)
  1. Also comment out "environmental-damages:" in damages.yml — Kainzo / gitlab
----------, Mar 9, 2017

REMOVE COMMONS JAR FROM PLUGINS IF YOU ARE USING THIS VERSION. IT IS NO LONGER NEEDED.

Abstract the health/mana/shield/etc scaling system

Abstracted places in the code where "base-max-x", "max-x-per-level", "max-x-per-level-power" etc. appeared with scalings. A scaling is essentially a class that wraps a ToDoubleFunction and provides a "double getScaled(Hero hero)" method, which returns the value of the function for the given hero. There are several implementations of this class to provide multiple ways to scale health and other values, while still supporting old configs and code.

Scaling types:
Level

  • Identical to the old scaling system, calculating the value based off of the base and per-level values.
Power
  • Similar to level scaling, except per-level * level is raised to a power. With a power of 1 this is identical to level scaling.
Expression
Explicit
  • Looks through the given level thresholds to find the highest threshold reached and uses that value.
ExplicitPower
  • Similar to power scaling, except the power used is calculated by looking through the given level thresholds to find the value of the highest threshold reached.
Config Examples:
Old system

base-max-health: 28.0
max-health-per-level: 0.4

New system
Code (Text):

value:
  scaling: level
  base: 28
  per-level: 0.4
value:
  scaling: power
  base: 28
  per-level: 0.4
  power: 1.1
value:
  scaling: expression
  expression: "50 + level * 10"
value:
  scaling: explicit
  levels:
    1: 100
    2: 120
    5: 150
    10: 1000
value:
  scaling: explicitpower
  base: 28
  per-level: 0.4
  powers:
    1: 1
    2: 2
    5: 2.5
    6: 2
    10: 1.5
    50: 1.1
 
Where does "value" appear in the class.ymls? The new keys max-health, max-mana, max-shield, item-damages, and projectile-damages.

The structure of item-damage and projectile-damage has also changed. Old system:
Code (Text):

item-damage:
  IRON_SWORD: 6
  GOLD_SWORD: 7
  DIAMOND_SWORD: 8
item-damage-level:
  IRON_SWORD: 0.1
  GOLD_SWORD: 0.15
  DIAMOND_SWORD: 0.2
 
New system (item-damage becomes item-damages, projectile-damage becomes projectile-damages):
Code (Text):

item-damages:
  IRON_SWORD:
    scaling: level
    base: 6
    per-level: 0.1
  GOLD_SWORD:
    scaling: level
    base: 7
    per-level: 0.15
  DIAMOND_SWORD:
    scaling: level
    base: 8
    per-level: 0.2
 


Changes

#705 (Feb 18, 2017 11:12:15 PM)
  1. Don't create an inner UCL — kashike / gitlab
#704 (Feb 18, 2017 10:44:50 PM)
  1. Shrink final JAR — kashike / gitlab
#703 (Feb 16, 2017 11:09:27 AM)
  1. Abstract the health/mana/shield/etc scaling system — payneaustin5 / gitlab
#702 (Feb 7, 2017 6:42:26 PM)
  1. Bump to 1.8.11-SNAPSHOT — kashike / gitlab
#701 (Feb 7, 2017 6:36:36 PM)
  1. Convert project to Gradle — kashike / gitlab
#699 (Feb 5, 2017 3:48:52 PM)
  1. add enchanter — Kainzo / gitlab
  2. add this again. — Kainzo / gitlab
----------, Feb 19, 2017

Changes
  1. Correct DataWatcher NMS mappings for 1.9r1 and 1.9r2 (detail / gitlab)
----------, Jan 27, 2017

Shields can now be granted with
  • base-max-shield: 1000
  • base-shield-per-level: 10
  • base-shield-regen: 25

Made large improvements to the /attributes gui.

#694 (Jan 25, 2017 11:14:18 PM)

  1. Add absorption related methods to NMSHandler and implementations — payneaustin5 / gitlab
  2. Implement sendAbsorptionHearts in NMS handlers — payneaustin5 / gitlab
  3. Implement health shields using absorption — payneaustin5 / gitlab
  4. Add shield info to StatsInfoCommand, add ShieldCommand, finishing — payneaustin5 / gitlab
  5. Register ShieldCommand in plugin.yml, add /sh alias — payneaustin5 / gitlab
  6. Cache results of reflection in absorption NMS handlers — payneaustin5 / gitlab
  7. Implement absorption methods in 1.7r4, 1.8r2, and 1.8r3. All NMS should — payneaustin5 / gitlab
  8. Add note to Hero.resetMaxShield() — payneaustin5 / gitlab
#693 (Jan 24, 2017 5:44:57 PM)
  1. Remove attribute laundry list manager and associated commands, Fix — payneaustin5 / gitlab
#692 (Jan 23, 2017 3:46:43 PM)
  1. Make the config.yml defaults better. — Kainzo / gitlab
#691 (Jan 23, 2017 1:21:36 PM)
  1. Render class experience to the second decimal place in scoreboards — kashike / gitlab
----------, Jan 26, 2017

#690 (Jan 13, 2017 5:21:52 PM)
  1. Special-case 1.11 support because md_5 — kashike / gitlab
#689 (Jan 6, 2017 9:21:38 PM)
  1. Attempt to implement necessary Scoreboard Packet stuff for a "ghost" — dkabot / gitlab
----------, Jan 14, 2017

Providing a new feature that will help kit servers and others to not have to maintain multiple odd systems, it also ties into other plugins by referencing player names, there's strength, you should use this! {PLAYER_NAME} can be used to substitute the name of the player that the cmd should run.
@Kashike - thanks for the code work <3

Code (Text):

run-command:
  as-console: true
  command:
    -  give @p diamond
    -  mm items give {PLAYER_NAME} KingsCrown
 
----------, Dec 19, 2016

This is a build that should be tested in production, we will brand it as stable as soon as more testing is done, due to time constraints we are unable to test 1.11 sooner than we'd like.

Commons 1.11 DOWNLOAD LINK
----------, Nov 26, 2016

This is a simple repack to get the versioning correct.
Updated:
Commons depends - please DL if you are having issues.
----------, Oct 12, 2016

You may need to refresh your skills from this update if you get errors. http://www.mediafire.com/file/ddl1092r95we92w/Heroes-public1.zip

You can now change skill descriptions via skills.yml simply add "Description: text here" to change it.

Changes
#678 (Oct 10, 2016 5:10:37 PM)
  1. Revert "Merge branch 'remove-citizens' into dev" — rodney.ramos / gitlab
#677 (Oct 2, 2016 3:31:33 PM)
  1. Fix events - broken in ad382568 — kashike / gitlab
#676 (Oct 1, 2016 8:47:32 PM)
  1. Revert "Because apparently we can't use one standard way of loading — rramos / gitlab
  2. Revert "Add debug output" — rramos / gitlab
  3. Revert "remove scoreboards from initialization restriction" — rramos / gitlab
  4. Revert "Create prior to init, but don't attempt the recursive part — rramos / gitlab
  5. Revert "Force initialization flag checks" — rramos / gitlab
  6. Revert "Lowercase load" — rramos / gitlab
  7. Revert "Don't run rendering whennot initialized" — rramos / gitlab
  8. Revert "Short circuit rendering visual components" — rramos / gitlab
  9. Revert "Undo performance optimizations" — rramos / gitlab
  10. Revert "Recursion fix for rendering, remove unnecessary operations" — rramos / gitlab
  11. Revert "Change to use (undocumented) updated Citizens API" — rramos / gitlab
  12. Revert "throw in some debug to see wtf is going on" — rramos / gitlab
  13. Revert "Fix still loading the old way" — rramos / gitlab
  14. Revert "Citizens2 Integration take 2" — rramos / gitlab
#675 (Oct 1, 2016 4:46:44 PM)
  1. remove some duplicate code — rodney.ramos / gitlab
  2. some minor code cleanup — rodney.ramos / gitlab
  3. version bump — rodney.ramos / gitlab
#674 (Sep 29, 2016 3:20:24 PM)
  1. get rid of some duplicate code — rodney.ramos / gitlab
#673 (Sep 26, 2016 6:52:07 PM)
  1. restore 1.8 "catch-all" to cover version range — rodney.ramos / gitlab
  2. added feature to override description in skills.yml — rodney.ramos / gitlab
#672 (Sep 25, 2016 12:18:49 PM)
  1. temp fix for IllegalAccessError — rramos / gitlab
#671 (Sep 21, 2016 1:53:01 PM)
  1. move runes package out of skills — rodney.ramos / gitlab
#670 (Sep 20, 2016 6:58:49 PM)
  1. reorgnize base totem and rune skills — mung3r / gitlab
----------, Oct 12, 2016

This was a minor version update preparing for the launch of the premium skill packs.

You may need to re-download public skills.
----------, Sep 20, 2016

Please let me know if this version works or not.
----------, Sep 16, 2016

This is to fix the last build, I tested it and it works locally, please let me know if you have problems!
----------, Sep 16, 2016

Public Skills

Custom Item Damage now applies to the weapon you are holding. If you have modifiers in your class.yml they will do BONUS damage to the existing modifier.

Changes
#657 (Sep 13, 2016 10:50:18 AM)
  1. remove unused imports — rramos / gitlab
#656 (Sep 13, 2016 10:08:02 AM)
  1. mc version compatibility updates — rramos / gitlab
#655 (Sep 13, 2016 12:40:21 AM)
  1. backport physics to 1.7 — rodney.ramos / gitlab
  2. removed debug output — mung3r / gitlab
  3. fixup physics 1.7 backport — rodney.ramos / gitlab
#654 (Sep 12, 2016 7:49:53 PM)
  1. Remove debugging. — Kainzo / gitlab
#653 (Sep 12, 2016 3:44:20 PM)
  1. backport physics to 1.8 R1 and R2 — rodney.ramos / gitlab
#652 (Sep 11, 2016 4:32:57 PM)
  1. forgot to add volatile to maxEquipmentWeight — rramos / gitlab
#651 (Sep 11, 2016 3:08:46 PM)
  1. add exclusion in pom.xml to fix build — rramos / gitlab
#648 (Sep 11, 2016 2:55:16 PM)
  1. cleanup repositories in pom.xml — rramos / gitlab
#644 (Sep 11, 2016 2:18:00 PM)
  1. factor out use of AtomicDouble — rramos / gitlab
  2. cleanup repositories in pom.xml — rramos / gitlab
#643 (Sep 11, 2016 12:53:56 AM)
  1. removed unused import — mung3r / gitlab
#642 (Sep 11, 2016 12:51:31 AM)
  1. add missing compatible versions — mung3r / gitlab
#641 (Sep 10, 2016 10:59:00 PM)
  1. added 1.8 sound compatibility — rramos / gitlab
#640 (Sep 10, 2016 6:25:22 PM)
  1. removed debug messages — mung3r / gitlab
#639 (Sep 10, 2016 6:22:41 PM)
  1. add item "generic.attackDamage" attribute onto weapon damage — mung3r / gitlab
#638 (Aug 29, 2016 1:02:52 PM)
  1. Update .gitlab-ci.yml — Kainzo / gitlab
#637 (Aug 29, 2016 12:56:44 PM)
  1. Update .gitlab-ci.yml — Kainzo / gitlab
#636 (Aug 29, 2016 12:54:18 PM)
  1. Add the default maven file. — Kainzo / gitlab
#635 (Aug 28, 2016 11:03:43 AM)
  1. missed 1_9_R2 in compatibility update — rramos / gitlab
#634 (Aug 25, 2016 12:13:47 AM)
  1. fix admin heal/mana/stamina duration, added period — rramos / gitlab
----------, Sep 14, 2016

#633 (Aug 24, 2016 1:00:21 AM)
  1. clarify percent parameter — rramos / gitlab
#632 (Aug 24, 2016 12:52:29 AM)
  1. added duration to admin heal/mana/stamina commands — rramos / gitlab

/hero admin STAMINA|MANA|HEAL NAME #
----------, Aug 25, 2016

There was a skill loading issue, this should make the skills properly load where it wasnt in some cases.
----------, Aug 19, 2016

Changes
#631 (Aug 19, 2016 3:05:26 PM)
  1. restore 1.10 dep to make skills project happy — rodney.ramos / gitlab
#630 (Aug 18, 2016 7:21:10 PM)
  1. set minimum mc version to 1.7.10 — rodney.ramos / gitlab
#629 (Aug 18, 2016 7:11:55 PM)
  1. adjust pom.xml to minimum mc version — rodney.ramos / gitlab
#628 (Aug 18, 2016 7:03:40 PM)
  1. more mc version compatibility updates — rodney.ramos / gitlab
#627 (Aug 18, 2016 5:22:46 PM)
  1. fix pom from last commit — rodney.ramos / gitlab
#626 (Aug 18, 2016 5:20:44 PM)
  1. mc version compatibility updates — rodney.ramos / gitlab
#625 (Aug 18, 2016 4:17:16 PM)
  1. fix lame typos — rodney.ramos / gitlab
#624 (Aug 18, 2016 3:55:41 PM)
  1. register stamina command, minor message adjustments — rodney.ramos / gitlab
  2. minor compatibility updates — rodney.ramos / gitlab
#623 (Aug 18, 2016 9:46:27 AM)
  1. added admin restore heal/mana/stamina percentage — rramos / gitlab
----------, Aug 19, 2016

This will fix skill loading on Windows servers if there are spaces.
----------, Jul 25, 2016

Some typo fixes and db pool size to configure SQL pool size.
----------, Jul 10, 2016

MASSIVE SKILL UPDATE - REGENERATE YOUR SKILLS.YML
(I suggest using diffchecker.com from the old/new skills.yml and merge changes as necessary)

Notes:
Food.enabled is now a config.yml option by default. Set it to TRUE to use the alternative stamina system and not have hunger. (This is untested in a production environment, please report bugs)

Added Several Skills for Quality of Life of Heroes and updated several skills to support the transition from Private to Premium (Attributes) development.

SkillAimedShot.java
SkillBlink.java
SkillEntangle.java
SkillForgeChainBoots.java
SkillGills.java
SkillJump.java
SkillOvergrowth.java
SkillScan.java
SkillAlchemy.java
SkillBolt.java
SkillEscapeArtist.java
SkillForgeChainChest.java
SkillGuardianAngel.java
SkillKick.java
SkillPulse.java
SkillShield.java
SkillArcaneStorm.java
SkillDespair.java
SkillExplosiveShot.java
SkillForgeChainHelmet.java
SkillHarmtouch.java
SkillLayhands.java
SkillRecall.java
SkillShieldReflect.java
SkillAssemblePickaxe.java
SkillDisarm.java
SkillFarSight.java
SkillForgeChainLeggings.java
SkillHerbalism.java
SkillLight.java
SkillRegrowth.java
SkillSmite.java
SkillBackstab.java
SkillEnchant.java
SkillFireball.java
SkillForgeShield.java
SkillIcebolt.java
SkillMark.java
SkillRevive.java
SkillBash.java
SkillEnderPearls.java
SkillFullHeal.java
SkillInvuln.java
SkillMining.java
SkillSafefall.java
Awaken,
Cleave,
Decay,
Flameshield,
Icevolley,
Manafreeze
----------, Jun 30, 2016

This should now mirror the Repair skill from Herocraft
----------, Jun 28, 2016

We've added several updates to the offhand component, this includes shield and TRINKETS (paper/book/lead/etc)

Thanks to @0xnaomi for the work on this update.
Some of the defaults will be updated soonish.
----------, Jun 24, 2016

* includes new config permitted-offhand
* includes a new "trinket" list (paper/book/leash/etc) so users can gain off-hand stats vs other classes not getting them.
* various fixes that aren't important enough to list.
----------, Jun 19, 2016

Added:

permitted-offhand:
Skill-Enchantedbook.

to the list of classes, you can now restrict what people hold, good for dual wielding, etc!
----------, Jun 17, 2016

Resource Information
Author:
----------
Total Downloads: 1,768
First Release: Jun 13, 2016
Last Update: Jan 9, 2025
Category: ---------------
All-Time Rating:
124 ratings
Find more info at discord.gg...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings