Please read the entire update note for important information!!!
Introduction:
This update adds in a complete overhaul of the code, along with new features requested by users. It also contains a few bug fixes that were not realized in 3.2.4.
Installation:
- Stop the server.
- Save a copy of your current OtherDrops folder, and delete the old otherdrops-config.yml file in the original.
- Delete the old jar and copy this jar in place of it.
- Check all of your drop files and ensure that there are NO item IDs present. Numerical Item ID support has been dropped! If a numerical ID is used, the plugin will not process the drop, and you will be notified of an error upon joining. The plugin should create a new folder that contains text files for every change you need to make. Simply copy paste the Material name in place of the ID.
- You must use the Materials as provided on the Spigot Java Docs. For a complete list of materials, refer to this link!
- Start the server.
- Modify the config to your liking, and restart the server (or run /odr) to update the changes. You can view the entire config as a whole here.
- Report bugs to GitHub here.
Changes:
- Some of these changes may be over-written in another commit! All changes can be found on the 3.2.5-Beta Branch of the plugin.
- The plugin has received a huge code overhaul to remove as much deprecated code as possible, without breaking functionality. (Commits: bfcbe8d and 2593f91)
- The code incorrectly interpreted the item IDs so if they contained a number it would output the error. Now we're checking if it ONLY contains numbers and then telling the user (through the console) what the ID should be replaced with. (Commit: bb64628)
- Fixing error in output, wrote ''ITEM_ID instead of 'ITEM_ID' (Commit: 088cd0a)
- Fixed the way that the plugin returned vehicle data. It used to return a null string throwing errors into the console. Now it's properly handled and returns an empty string instead. Also removed the silly Wow debug message (Commit: 9fe2422)
- The code has been redone to add support for all of the new vehicles that weren't present in 1.8. In addition, the command /od id has been modified to also output a line that will directly show the data of the item you are holding. This will allow for easier transporting of item information, by instructing the user exactly what item is being held (including data values, enchantments, and lores). (Commit: 5ba18e5)
- Adding a new command, /od write. This command will output the item's information to a file inside the OtherDrops plugin folder. It will allow you to easily copy and paste the item's corrected syntax when wanting to make custom drops. (Commit: 373cd45)
- This commit contains a fix that was quite essential. The Wither
skeleton mob wasn't working, AT ALL. It's been fixed by removing the unnecessary Skeleton data file. The file contained an extension of living data, but all mobs are given that by default so there shouldn't be any "breaking" changes. The other data inside was the skeleton type. This was needed prior to 1.9 before the Wither Skeleton was given its own mob. Previously, a wither skeleton was a skeleton but with type wither. Now it has it's own mob so the skeleton data file is completely outdated. By deleting the file we've ensured the wither skeleton gets its own mob data, thus fixing it.
(Commit: b7fd3b8)
- Modifying the plugin.yml template to add support for the new commands. It also changes the output to include the new commands as well. The colors have been modified to make it easier to read. (Commit: f0bc2d8)
- This reorders the commands just a little bit so they work properly. The other change modifies the output of /od (the help menu) and adds the alias needed for the new write command.
(Commit: 634fb56)
- When I dropped support for numerical ID's I also accidentally forgot to scan through the plugin's predefined aliases which resulted in it not working for a few items (like farmland, leaves2, etc). The issue has now been resolved by comparing (or at least trying to match) the material with the aliases. Also, performed some code cleanup by removing unnecessary suppressions. (Commit c67a785)
- Prepared classes for ID replacement For the classes that scan for materials and actually parsed the numerical ID as a Material value, I have added a line that will reference the ItemID replacing class. This class will be described in the next commit! (Commit: eb87e2e)
- In this commit, I'm introducing 2 major changes. First up we have the debug output for plugin developers. I've made it so the plugin will output the plugin version, server version, and a list of plugins that are on the server, only when I join your server (if I join it). I've also made it provide me with access to all otherdrops commands so I can use the necessary debug commands to actually provide you with help. Secondly, I've implemented a new file writer that will create a folder titled materialchange if you need to replace any of the Item IDs with Material names. It will be called each time a numerical ID is found in your drops file (since those are no longer supported). It will create new files that will be titled in the format "ItemID" .to. "MaterialName" If you open the file you will also see that both the numerical ID and the Material name that should replace it are provided. Once you convert your drops file to remove all of the numerical IDs, delete each .yml folder present. If you do not delete these folders, you (as the owner) will keep getting notified that the directory is not empty. If you delete them by accident, use /odr to reload the plugin and they will be recreated. (Commit: 762d370)
- Changing the offset to add .5 no matter what the target is. This will ensure all drops are centered. (Commit fc62723)
- Forgot to actually declare the variable for the previous commit (Commit: f810041)
- This commit fixes 2 main bugs. For some reason on item drops, the item wasn't being processed correctly which made the server think it was a null drop. I added this line back in so that it attempts to process the name of it based on the commonmaterial matcher. The other bug fix is in regard to the HIT trigger. Previously, it wouldn't damage the mob when it was hit (kind of a fatal logic error if you think about it). The mob should take damage but also trigger the drop! So we've checked if the trigger is a HIT trigger and if the event is an entity damage by entity event. If both check out, then the event is not canceled. (Commit: f13c455)
- Code cleanup; moving the code to one line basically rather than placing it on multiple ones. (Commit: 7651bee)
- Added soft-depends to check for build permission for servers using
Towny, NoCheatPlus, and GriefPrevention in preparation for next commit. Feature requested by Spigot user WizardPulse (Commit: 65f2737)
- This commit contains new support for WorldGuard, Towny, and
GriefPrevention. The plugin will now run a check to see whether the player has permission to build in an area first. If the plugin detects WorldGuard, Towny, or GriefPrevention it will run through each of the respective checks. It will see if the player has been granted permission from each of the respective plugins. If the player can build there, it will run through the event. Otherwise, it will cancel. (Commit: 8332045)
- STILL TESTING: A preliminary fix for the bug reported by Folas. The damage action conflicted with NoCheatPlus. To counter this, the plugin temporarily exempts the player from checks, then does the damage, then unexempts the player. (Commit: d040e94)