The old worked with 1.19 anyway, but this no longer says unknown version during start.
This also resolves an issue with the NPC not stopping while walking by players. Thanks to
@Bartos13 on my discord for pointing it out again. I think others have said something, and well yeah. life n stuff.
There were many issues with the storage for sentinel due in part to many changes (A good thing) to Sentinel. Monkey is active on that plugin and giving everyone new features all the time so Kudos to him, bad on me for not keeping up with them.
Wrote a new system to manage the storage of settings for Sentinel per location. There are some items that DO NOT function with this version of destinations.
The settings of byMultiple and byAllInOne are not supported as they are nested lists and I have not gone down that rabbit hole yet. If this is an issue let me know and I will work on making that work.
BetonQuest V1.x and V2.0 supported
Possible loop on Citizens shutdown/plugin disable
I have not been able to produce it, but there is a point where for some reason an event loop occurs. If you get this still please let me know. I have removed the code that listened for that event, though all it did was say it was canceling the pathing tasks. I now only do this on Destinations shutting down, not when citizens does.
SoftDepends
I had several complaints of breaking Denzien/Citizens load orders when I had them in the softdepends, but to help avoid the messages I have added them back. It really shouldn't break any load orders in my view, but its been reported that it does randomly.
Removed the dependency on Commons.IO. A couple people ran into issues with this, and I just replaced the code using it with my own.
FIXES:
Changed the Skin system to match the newer API for Citizens. Anyone having issues with skins should be set now. If you are running old versions of Citizens, this could break your skins.
When processing doors, the NPC would teleport into the ground when closing the door. This has been resolved.
If an endlocation was next to a door, you might get an error in the console. This has been resolved. Thanks to @SirMario for re-reporting this one. Grin
bStats: There was an issue with the last build after some changes I made. This new version waits quite a while before it sends anything back to bStats.org. This just helps lets me know if people are using the plugin, and any plugins with it.
BetonQuest: Support has been dropped for prior versions of BetonQuest. I now support 1.12 with this release, so please make sure you have updated to the latest if you have not already. Several thanks to @SaltyAimbOtter and others who pointed out the aged code.
Apologies:
2.3.57 went up with the non shaded jar. My bad This resolves that.
BetonQuest: Support has been dropped for prior versions of BetonQuest. I now support 1.12 with this release, so please make sure you have updated to the latest if you have not already. Several thanks to @SaltyAimbOtter and others who pointed out the aged code.
JobsReborn: When combined with Jobs, a NPE was causing issues with commands and the nd info screen. This has been resolved. Huge thanks to @KingKilo59 for bringing this to my attention.
Known Issues:
The new gates and doors in 1.16 are not opening. So i need to figure out if it's a bug with mc/spigot or if I am just approaching it wrong. Either way, the path will work thru them, but they will not open.
Doors/Gates: 2.3.54 had a serious issue with doors and gates. I really do not know what I was thinking last night Thanks to @Tsumitsuki on Discord for pointing this out, as well as @bbayu for re-pointing me back to another way to check for doors etc.
Known Issues:
The new gates and doors in 1.16 are not opening. So i need to figure out if it's a bug with mc/spigot or if I am just approaching it wrong. Either way, the path will work thru them, but they will not open.
When you used locwand and assigned a region the NPC would just stand at the location and not move. Turns out it never really checked if locations in a region were walkable. Thanks to @hashashin for alerting me to this.
Turns out that the prior couple versions most likely let things path find through them without stopping it. This can cause longer delays in finding a real path. As well as smaller areas wandering would take quite a while depending. Huge thanks to @ZeusCP for getting creative in how he used the plugin and leading me to this bug.
If you use locwand and used the --blocks argument on it, it would not look at the correct path when combined with blocksbelow. This has been resolved. Thanks to Fredif and TheDonald for reporting this.
Plotsquared updated their API. This caused the plugin to break for anyone migrating to version 4. This has been resolved. Thanks go out to Honey on my discord channel.
Issue #32 / Issue #33: Provides support for the latest worldguard/worldedit builds. Solved the issue with java.lang.NoSuchMethodError: com.sk89q.worldguard.internal.platform.WorldGuardPlatform.getWorldByName. Credit to @Rincewind34 and @Midnight9746 for pointing it out on my GitHub page.
It seems that I never let people know they don't have permission to use the plugin, if they don't have permissions. How silly of me. Thanks to @derPiepmatz for pointing this one out to me.
Worldguard detection looks for the classes now, Version 7 now has two versions. One that has the class BlockVector, and has BlockVector3. This was causing issues, and is detected irregardless of the version numbers
Seems that the conditions were not registering for 1.10 and 1.9. 1.9.x and 1.8 were fine. This has been resolved. Thanks go to Discord user: MiezMiez for pointing it out to me.
After doing a ton of digging, I did clean up the usage a bit and it lowered the timings. Long story short, it's less but your citizen's plugin might move up on the timings and show a hair more.
Pathfinding Queue
I have changed the way the queue processes now. For people using the Wanderloc portion, this will help stop that long pause between movements. The queue is now processed over time and this allows for NPC's with long distance locations to not cause other NPC's to wait. I show a distance / perf / time. The seconds are processing time, not total time.
Additions:
Command - maxprocessing
This command lets you override the configured max time to find a location. Where the default is 10s, this allows you to set it higher or lower.
Been a while since I reviewed this function, and it seems it was broken. This has been fixed. Thanks to @jobogamer24 and @bottomdumber for pointing it out, as well as pointing to where the issue was.
Console Messages
Errors cropped up when running commands from the console. This has been updated when commands are not supported on console.
the allstatus command also works on the console as well now
Changes:
Command - AllStatus
The AllStatus command now lets you filter the status results.
Seems that I messed up on checking if the NPC was inside a plot during the wandering event. Even when there are no plots to be seen. This should resolve that problem.
I have cleaned up the code around the gates and doors, it will help avoid the NPC just opening and closing a door over and over. This does not fix the teleporting thru a door as this is a result of Minecraft killing pathfinding through doors, so I believe citizens is teleporting the NPC through the doors.
Something many people have noticed is the NPC's when traversing a path at 45-degree angles will have their heads look back and forth. I have been working at this for a while to clean up, but it's a mix. Citizens seem's to look based on the path that it is navigating internally. With that said, I added some code in to validate the distance and angle between points in the navigation plan. If you debug the path, you will notice that it removes up to 10 blocks at a time if the path is in a line even at different angles. This gives the NPC a slightly smoother look when walking. It's the best I can do at this moment.
Initial startup locations
As many of you have been painfully aware, there was a bug that caused the NPC's to not sit, lay down, farm, etc.. if the location they are at is the same as it was when the server stopped. This has been resolved, so if you have a single location with the NPC set to sleep, it's been resolved. The way I changed it, should not break any other plugins that people have written for this. If so please let me know and I can review more.
With 1.9.4+ the timing of registering custom events broke this plugin. I had to do a few things to ensure people with an older beton could still use the plugin. So it took a bit more to get it resolved. This should be good now.
Left a debug notice in the code. It was pushing a FirelocationChange: in the log. This has been removed. Someone reminded me of this, and I forget who off hand (Sorry)
An issue with the BetonQuest portion of the plugin. If you used the DistancetoLocation condition with the number ident, not the UUID. You would get a NULL error pointer in the logs, this has been resolved. Thanks as always to @Grnknght for pointing this out to me.
Locwand refused to allow the --blocks argument due to an incorrect max arguments number
Console-Spam
Error when an NPC is attacking a user and they teleport out of the current world. Reported by @Superola.
Additions:
Auto Pathfinder
NPCs will now swap the Citizens navigator based on the surface time they are walking on or going to walk on. This should help with the spinning issues as well as getting to their final locations.
Seems I never took into account that some people might have multiple worlds for plotSquared, or only a portion of the worlds managed by it. So this caused errors to crop up across the board. Sorry about that. Thanks to @Arctomiumfor pointing this out.
Hopefully this resolves that issue, just assuming this was the reason and was able to make it happen with that.
This allows admins to allow NPC Destinations to be used by players on their plots.
Wander mode, the NPC's will not go outside the plot
They cannot add locations outside the plot (you can merge and have them work across that). If the plots are not connected the NPC will not be able to cross to the other plots
Use my Citizens PlotSquared plugin to block access to NPC commands outside plots (If enough people want it, I will add that feature set to this as well).
If the users set a time on the plot, the NPC's will use that flag setting. So they can test via /plot flag set time # then use /plot flag remove time to follow server time.
Curious? Join Mc.NuttyCraft.us and look for the creative area. You have access to NPC's and Destinations on any of my creative servers, so feel free to test it.
The server is mostly for testing and development anymore. So while a there are things there, it's hardly used by anyone.
Changes:
None
Fixes:
Some commands returned no permissions if you used npcdestinations.edit{all/own}.*. This has been fixed.
PLEASE NOTE: This is very untested as Citizens has not updated yet. I am putting it out for when they do, and I am busy / unable to update it at that moment.
Now the commands will help you fill out the values allowed. Just hit tab and they will come up. This includes plugins for my plugin due to how I wrote the system.
Changes:
API:
If you wrote a plugin for the 2.0 version, there are breaking changes. I will post an update about this later on as well as how to make a plugin that this interfaces with Destinations.
Sentinel & JobsReborn
The commands are the same, but the storage locations have moved from the Destinations.# to Destinations.#.pluginsettings
They will also not show up as a command if you do not have the related plugin
That have been moved from the main bar, to the plugin section of the bar. More fitting this way.
Commands & Help:
The help system is dynamically built now based on access. Before it was semi based on access, but this is fully based on access levels.
Tabbing over commands lets you auto-fill things in
Wandering Mode:
Several people requested the ability to define a region rather than a distance for the wandering mode. This has been done. Just use /nd locwander <loc#> <Distance or RegionName> to set that now.
Fixes:
There were a bunch, but not worth writing them all out. Sorry, being lazy.
Added the ability to remove the teleport on stuck action from the citizen's navigator. This seems to break the NPC from going through doors, but it may help you out.
Usage: /npcdest citizens <PathDistance> <PathMargin> <Y/N new path finder> <Y/N Swimming> <Y/N Avoids Water> <Y/N Teleport on stuck>
Fixed an endless loop that could occur when an NPC was unable to figure out a destination when set to a wandering location. Kudos to @Hmmcrunchy for pointing this one out.
Cleaned up a minor issue with trying to combat a slab bug, the debug showed the target below the block, now it shows that slab block.
Changed:
Removed a bunch of spam from the console (Left debugging messages in that shouldn't have been there). Loading trait, chunk forced, and some others. As well as some code that was never used but was there for testing worldguard.
This one has quite a bit of stuff changed internally.
* Debugging system has been re-worked
* API / Plugin integration system.
* Updated chat menu
* New settings for undersurface (-1 = level 0, # = # under the surface)
Locations can be managed by plugins. They do not save when the plugin shut's down, and need to be added by a plugin. They can be viewed by users with permissions, but cannot be modified.
Added events:
Location_Added: Fires upon a new location being added to an NPC by a user (Can be cancelled)
Location_Deleted: Fires when a location is being deleted by a user (Can be cancelled)
Location_Updated: Fires when a location has been updated (cannot be cancelled)
Navigation_Failed: Fired when the NPC cannot find a path
Navigation_NewDestination: Fired when the NPC gets a new location to travel to. (Can be cancelled)
Navigation_Reached: Fired when the NPC reaches a location. (You can cancel this, it stops skin changes, events, equipment, Lighting, Sentinel changes, Animations, betonQuest, etc..)
Animation:
Chest - The NPC can now open a chest at a location. You need to make sure you are looking at the chest you want open when you add the location.
BetonQuest integration was broke in 1.46-1.47. This has been fixed.
Fixed a couple of errors that came up when the NPC was being unloaded.
Thank you to
@Grnknght for pointing this one out to me in chat tonight. Let me know if this resolves your issues with the BetonQuest portions. It should also address the other errors you pasted to me.
Ability to have commands executed when the NPC reaches a destination
/nd loccommands <loc#>
Shows commands attached to the destination
/nd locaddcmd <loc#>
Adds a command to be executed upon reaching a destination.
/nd locdelcmd <loc#> <cmd#>
Removes a command from the list.
Locations now have a unique identifier on them.
This has been added for the API I am adding, as well as betonquest integration. It ensures that you can reference a location correctly even in the event that one was deleted.
Changes:
BetonQuest changes
The ID on all the commands now accepts the UUID. Hover over a location to show the locations GUID. You can click the location # to have it pasted into your chat box for copying.
Click here to grab an
Example BetonQuest Package Credit goes to
Feeriix for the idea to add this to the plugin as well as letting me know about it not working with the new 1.9 dev builds. Also thanks to
@Co0sh for pointing out the version differences and his
amazing BetonQuest plugin.