CustomNPCs prerelease 11
This release is comprised of entirely bug fixes, as the full release is very near
Bug Fixes
- The /npc fixconfig command now requires the permission
customnpcs.commands.fix_config
- Fixed the /npc help and /npc manage commands being missing
- Fixed an error (that only appears in the console) upon translating an empty string in some action favicons
- Fixed an issue where you could not decrease the DisplayTitle's fade out option if the fade in option was 1
- Maybe fixed an issue with the menus when setting an input
That's it
Foxikle <3
New Features
/npc fixconfig
command.- Here is some example usage, with an explanation:
/npc fixconfig world <Valid World> <Strategy> <target>
- The Valid World has to be a world that is loaded by Bukkit (Multiverse should work too)
- The strategy can either be
NONE
, which doesn't care about validating the location of the NPC. theSAFE_LOCATION
strategy will verify the NPC won't be stuck in any solid blocks. If it is, the plugin will pick the highest block with the same x and z coordinate. If no position is possible, the NPC is ignored. - The Target can either be
all
, to apply to all NPCs or a specific NPC's name or UUID
- Here is some example usage, with an explanation:
- A new command framework that utilizes Brigadier
- The NPC configuration is validated on the first file parse, rather than on loading.
- There is now a special permission for the /npc wiki command,
customnpcs.commands.wiki
Bug Fixes
- /reload no longer throws an error
- Using the skin catalog no longer throws an error
Developer Changes
The Bukkit services api has been removed. Its not like anyone actually used it.
I have recently discovered that the Bukkit configuration api has decided to eat locations when they are invalid. There is nothing I can do to recover them. I apologize for the inconvenience
Thats it <3
Foxikle
New Features
- 1.21.3 support
- Support for the following languages (Not all are fully complete) -> German, Russian, Chinese
- The language is determined by the client's locale, defaulting to English.
Bug Fixes
- Fixed a bunch of errors around the API Events
- Fixed a bunch of Nametag related issues
- Fixed the teams problem (Hopefully for the final time)
- Fixed NPCs being injected in the wrong world (Only on new versions, it as fixed on older ones)
- A pile of performance enhancements
API Changes
- Setting the location now overwrites the direction settings object
- BREAKING: In order to register an object, you must call
CustomNPCs.ACTION_REGISTRY.register("ID", Action.class, Action::creationButton)
or whatever you name your creation button method. An example method is below. - The method
Action#getFavicon
have been refactored toAction#getFavicon(Player)
(For better localization support) - The corresponding API version for this release is
1.7-pre8
And probably a bunch of other small tweaks and stuff.
I am looking for Translators!
If you speak a language other than English and are interested in helping me translate please reach out. You can make a ticket or just DM me on Discord. In exchange for translating, you get a swanky @Translator
role, and access to the perks of being a supporter! (This means builds of preview features much much sooner than everyone else.) More info at https://crowdin.com/project/customnpcs
Full Changelog: https://github.com/Foxikle/CustomNPCs/compare/v1.7-pre3...v1.7-pre8
CustomNPCS 1.7-pre3
New Features:
- Localization/translation system
- I am looking for translators! If you would like to help translate the plugin, you may do so at https://crowdin.com/project/customnpcs. In exchange for your translation efforts, you will gain access to my preview builds if you join my discord.
- The
RunCommand
Action can now run commands as the console. Only players with thecustomnpcs.run_command.enable_console
can set a command to run as the console. PLEASE BE CAREFUL WITH THIS - 1.21.1 support
- A complete action system rewrite
- Custom actions can be registered via the API
- The DisplayTitle action can now have a subtitle!
Bug Fixes
- Fixed NPCs not being injected after respawn
- Fixed NPCs being injected in the wrong dimensions
- Fixed NPC nametags from being visible (The numbers and letters)
Breaking API Changes
The Conditional
, NumericConditional
, and LogicalConditional
have all been renamed to Condition
, NumericCondition
, and LogicalCondition
respectively. Additionally, the NPC#setActions(List<Action>)
has been changed to the new action class. If you would like to use legacy actions (Don't :pray:) use NPC#setLegacyActions(List<LegacyAction>)
Please note that this version does NOT support 1.20.5 -- Paper has yet to release dev builds
New Features
- Added PlaceholderAPI support for NPC Name tags, and Customizable Interactable Holograms
- Removed the
/npc clear_holograms
as it is now obsolete - New NPC Injection System for a smoother experience
- The ability to customize the intervals of things in the config.yml (All values are in ticks)
InjectionInterval
Determines how often should the plugin should attempt to inject NPCs into players (Defaults to 10, or .5 seconds)HologramUpdateInterval
Determines how often the plugin should attempt to update NPC holograms, (Defaults to 200, or 10 seconds)LookInterval
Determines how often the plugins should update NPCs looking at players (Defaults to 5, or .25 seconds)
- Added the ability to control the injection distance. This is
InectionDistance
in the config.yml. (Defaults to 48.)
Bug Fixes
- Fixed the NPCs not always being injected properly on versions 1.20 - 1.20.1
- Fixed the name tag reference creating crazy results when using MiniMessage
<gradient>
and<rainbow>
tags. - Fixed issue with a NoSuchMethod error when using 1.20-1.20.1
- Fixed facing direction parsing (Again 😭)
- Fixed NPC holograms duplicating on 1.20-1.20.1
- Performance enhancements, Small fixes
- Fixed an issue with not being able to remove actions from NPCs on versions 1.20-1.20.2
- Fixed a CRITICAL issue with NPC holograms tanking servers
- Made hologram handling completely asynchronous
- Removed about a billion typos
Acknowledgements
Thank you to @lavriklive and @skyonthemoon on discord for their tremendous help in stress-testing and finding bugs!
Cheers! ~ Foxikle <3
Full Changelog: https://github.com/Foxikle/CustomNPCs/compare/v1.6.1-pre2...v1.6.1
New Features
- New NPC Injection System for a smoother experience
- The ability to customize the intervals of things in the config.yml (All values are in ticks)
InjectionInterval
Determines how often should the plugin should attempt to inject NPCs into players (Defaults to 10, or .5 seconds)HologramUpdateInterval
Determines how often the plugin should attempt to update NPC holograms, (Defaults to 200, or 10 seconds)LookInterval
Determines how often the plugins should update NPCs looking at players (Defaults to 5, or .25 seconds)
- Added the ability to control the injection distance. This is
InectionDistance
in the config.yml. (Defaults to 48.)
Bug Fixes
- Fixed issue with a NoSuchMethod error when using 1.20-1.20.1
- Fixed facing direction parsing (Again 😭)
- Fixed NPC holograms duplicating on 1.20-1.20.1
- Performance enhancements, Small fixes
- Fixed an issue with not being able to remove actions from NPCs on versions 1.20-1.20.2
- Fixed a CRITICAL issue with NPC holograms tanking servers
- Made hologram handling completely asynchronous
Acknowledgements
Thank you to @lavriklive and @skyonthemoon on discord for their tremendous help in stress-testing and finding bugs!
Cheers!
~ Foxikle <3
What's Changed
- Added PlaceholderAPI support for NPC Name tags, and Customizable Interactable Holograms
- Removed the
/npc clear_holograms
as it is now obsolete
NOTE: The holograms update once every second
Bug Fixes
- Fixed the NPCs not always being injected properly on versions 1.20 - 1.20.1
- Fixed the name tag reference creating crazy results when using MiniMessage
<gradient>
and<rainbow>
tags.
Cheers!
~ Foxikle
New Features
- NPCs can now override the default Interactable Hologram.
- Indevidual NPCs can toggle having the Interactable Hologram, even if it is interactable.
- The NPC's escaped name is shown to the player whilst changing it. (Toggleable via the
NameReferenceMessages
field in theconfig.yml
!) - A new menu page to house the aforementioned items.
- A button to delete the NPC from within the menu
- A confirmation menu upon attempting to delete an NPC (Yes, even with the command. I may add a bypass flag in the future.)
- A button to set the NPC's pitch and yaw, so called its
Facing Direction
- The
/npc
command now takes the RAW (unstylized) NPC name as an identifier. (ie./npc edit foxikle's helper
). This does support NPCs with spaces in their name.- Just a note about that, NPC UUIDs still work, they just are not supplied to the tab completion
- A new command to teleport to an NPC.
/npc goto <NPC>
- Requires the
customnpcs.commands.goto
permission
- Requires the
- A new command to move an NPC to you.
/npc movehere <NPC>
- Requires the
customnpcs.commands.movehere
permission
- Requires the
- A new command to clone an NPC to your current location.
/npc clone <NPC>
- Requires the
customnpcs.commands.clone
permission
- Requires the
- The Skin menu, the Action Customizer Menu, and the Condition Customizer Menu now all have click sounds
- The config version is now 5
- The NPC File version is now 1.6
- Backing up
config.yml
if it is irreparably damaged - Importing your current armor to an NPC
- New skin menu
- Import skins from a player's name
- Import skins from a URL
- Use the Skin Catalogue (Nothing changed here, but its in the skin menu)
- Added a
tunnelvision
option to npcs (Already an API feature)- A tunnelvisioned NPC does not look at nearby players
- An improved wiki *Its still a work in progress, so it's URL is https://docs.foxikle.dev, while the old wiki remains at https://foxikle.dev/plugins/wiki/customnpcs. The Javadocs have been moved to https://jd.foxikle.dev!
- A shiny new Menu System, written with WoodyMenus, Courtesy of @FlameyosSnowy
- A shiny new rework of the event listeners, vastly improving performance! Courtesy of @FlameyosSnowy
- The
Teleport
action now teleports players asynchronously, for more performance - Multi-version support! (For now, 1.20-1.20.4)
- The plugin will now complain if an NPC's configuration is malformed/invalid, instead of refusing to enable.
- NPCs now default to being resilient
Bug Fixes
- Fixed an error whilst making an NPC interactable if it previously wasnt.
- Fixed numerous issues with the ToggleFollowing action, ** WHICH IS NOW BROKEN, STAY TUNED FOR 1.7**
- Fixed setting armor displaying a message indicating the wrong slot was set. (It wasn't!)
- Fixed the plugin not enabling on 1.20 & 1.20.1, courtesy of @tomasalias
- A boat load of small fixes, improvements, and optimizations
- Fixed inconsistencies with the lore in the Equipment Menu
- Fixed importing player armor mutating the player's armor. (Changing the display name and lore)
- Fixed a serious issue whilst serializing actions under certain circumstances.
- Fixed a bunch of issues relating to manually changing NPC Equipment
- Removed several debug messages
- Fixed NPC holograms sometimes not being removed properly
Developer changes
- Removed the old
NPCApi.NPC
class - CustomNPCs now uses Lombok getters and setters
- Deprecated the old constructor for Settings to accommodate the new settings options
- Both the Settings and Equipment classes now have
clone
methods. - The
Equipment
object now has a method to import from anEntityEquipment
object. Action#getArgsCopy
now returns a mutable listActionType
now has a field determining if the action can have a delay- THE JAVADOCS HAVE BEEN MOVED TO https://jd.foxikle.dev/!!!
New Contributors
- @tomasalias made their first contribution in https://github.com/Foxikle/CustomNPCs/pull/40
- @FlameyosSnowy made their first contribution in https://github.com/Foxikle/CustomNPCs/pull/46
Full Changelog: https://github.com/Foxikle/CustomNPCs/compare/v1.5.2...v1.6
Acknowlegdments
A huge thank you goes out to Nutric! He has been instrumental to this update through his patronage on Patreon!
That's it! Here is a little peek at the future of CustomNPCS!
CustomNPCs Roadmap
1.7
- Action system revamp (API Support!)
- NPCs loading chunks
- QOL features suggested by none other than Nutric!
1.8
- NPC AI
- Re-introduction of the 'toggle following' action
- Different ai goals & pathfinders to apply
- Potentially a PVP bot? (unlikley...)
Cheers!
~Foxikle <3
Bug Fixes
- Fixed a severe issue with de-serializing actions from before the 1.6 prereleases
- Added sounds to the skin catalog
- Fixed the pitch of NPC heads being slightly higher than it should be
- Fixed a type in 'saftey'
- Fix the bodies of NPCs facing the wrong direction for tunnelvisioned NPCs
Other changes
- NPCs now default to resilient
Full Changelog: https://github.com/Foxikle/CustomNPCs/compare/v1.6-pre4...v1.6-pre5
CustomNPCs 1.6-pre4
New Features
- NPCs can now override the default Interactable Hologram.
- Indevidual NPCs can toggle having the Interactable Hologram, even if it is interactable.
- The NPC's escaped name is shown to the player whilst changing it. (Toggleable via the
NameReferenceMessages
field in theconfig.yml
!) - A new menu page to house the aforementioned items.
- A button to delete the NPC from within the menu
- A confirmation menu upon attempting to delete an NPC (Yes, even with the command. I may add a bypass flag in the future.)
- A button to set the NPC's pitch and yaw, so called its
Facing Direction
- The
/npc
command now takes the RAW (unstylized) NPC name as an identifier. (ie./npc edit foxikle's helper
). This does support NPCs with spaces in their name.- Just a note about that, NPC UUIDs still work, they just are not supplied to the tab completion
- A new command to teleport to an NPC.
/npc goto <NPC>
- Requires the
customnpcs.commands.goto
permission
- Requires the
- A new command to move an NPC to you.
/npc movehere <NPC>
- Requires the
customnpcs.commands.movehere
permission
- Requires the
- A new command to clone an NPC to your current location.
/npc clone <NPC>
- Requires the
customnpcs.commands.clone
permission
- Requires the
- The Skin menu, the Action Customizer Menu, and the Condition Customizer Menu now all have click sounds
- The config version is now 5
- The NPC File version is now 1.6
Bug Fixes
- Fixed not being able to go back from the
New Action Condition
menu. - Fixed inconsistencies with the lore in the Equipment Menu
- Fixed importing player armor mutating the player's armor. (Changing the display name and lore)
- Fixed a serious issue whilst serializing actions under certain circumstances.
- Fixed a bunch of issues relating to manually changing NPC Equipment
- Removed several debug messages
- Typos and other small fixes
Developer changes
- Both the Settings and Equipment classes now have
clone
methods. - Deprecated the old constructor for Settings to accommodate the new settings options
- CustomNPCs now uses Lombok getters and setters
Full Changelog: https://github.com/Foxikle/CustomNPCs/compare/v1.6-pre3...v1.6-pre4
A huge thank you goes out to Nutric for being a Patron over on Patreon. Nutric has also helped me with the q/a of this update, so be sure to show your appreciation if you ever see him around.
Thats it! This will likely be the last prerelease before the full release of 1.6!
Cheers <3
~ Foxikle
CustomNPCs 1.6-pre3
This one took a while to get out, but its here!
New Features
- Backing up
config.yml
if it is irreparably damaged - Importing your current armor to an NPC
- New skin menu
- Import skins from a player's name
- Import skins from a URL
- Use the Skin Catalogue (Nothing changed here, but its in the skin menu)
- Added a
tunnelvision
option to npcs (Already an API feature)- A tunnelvisioned NPC does not look at nearby players
- An improved wiki *Its still a work in progress, so it's URL is https://docs.foxikle.dev, while the old wiki remains at https://foxikle.dev/plugins/wiki/customnpcs. The Javadocs have been moved to https://jd.foxikle.dev!
- A shiny new Menu System, written with WoodyMenus, Courtesy of FlameyosSnowy
- A shiny new rework of the event listeners, vastly improving performance! Courtesy of FlameyosSnowy
- The
Teleport
action now teleports players asynchronously, for more performance
Bug Fixes
- Fixed an error whilst making an NPC interactable if it previously wasnt.
- Fixed numerous issues with the ToggleFollowing action
- Fixed setting armor displaying a message indicating the wrong slot was set. (It wasn't!)
- Fixed the plugin not enabling on 1.20 & 1.20.1, courtesy of tomasalias
- A boat load of small fixes, improvements, and optimizations
Developer Changes
- The
Equipment
object now has a method to import from anEntityEquipment
object. Action#getArgsCopy
now returns a mutable listActionType
now has a field determining if the action can have a delay THE JAVADOCS HAVE BEEN MOVED TO https://jd.foxikle.dev!!!
Full Changelog: https://github.com/Foxikle/CustomNPCs/compare/v1.6-pre2...v1.6-pre3
A huge thank you goes out to Nutric for being a Patron over on Patreon. Nutric has also helped me with the q/a of this update, so be sure to show your appreciation if you ever see him around.
This update was a tremendous amount of work, I appreciate every one of you! ~Foxikle <3
New Feature:
- Multi Version support!! (1.20-1.20.4)
This update was a massive undertaking and I could not have done it without Wildered!
Cheers <3
~ Foxikle
This release is for 1.20.2
I am working on a prerelease to support 1.20.3 presently
Bug Fixes
- potentially fixed an issue with the Unix file system
- Fixed spigot spamming the server console about reflection
- Fixed NPCs not having the same UUID as their GameProfile when creating a new NPC
New Features
- Clickable Text now supports MiniMessage (And the 16 character limit is now no longer)
- Config version is now 3
Developer Notes / API Changes
- NPCs Minecraft names are now derived from their UUID, (The first 15 characters)
- API Version is now 1.5.2
- There is a new Class that should be used for interactions with the API. You still need to initialize the API with
NPCApi.initialize()
. - The Old NPC class is now deprecated and marked for removal in Version 1.6
- NPCs can now have "tunnel vision" or the ability to ignore players around them. NPCs will not look at players within 5 blocks.
- The Javadocs are now on version 1.5.2-pre3. (I tried to make each version have their own directory and utterly failed)
- ie.
https://docs.foxikle.dev/customnpcs/1.5.2
would have CustomNPCs version 1.5.2 javadocs, and so on.
- ie.
The javadocs are here, and the developer wiki is here.
Cheers!
~ Foxikle
Hi! This update is entirely focused on the new API changes.
Api Changes
- There is a new Class that should be used for interactions with the API. You still need to initialize the API with
NPCApi.initialize()
. - The Old NPC class is now deprecated and marked for removal in Version 1.6
- NPCs can now have "tunnel vision" or the ability to ignore players around them. NPCs will not look at players within 5 blocks.
- The Javadocs are now on version 1.5.2-pre3. (I tried to make each version have their own directory and utterly failed)
- ie.
https://docs.foxikle.dev/customnpcs/1.5.2
would have CustomNPCs version 1.5.2 javadocs, and so on.
- ie.
- API version is now 1.5.2-pre3
The javadocs are here, and the developer wiki is here.
Edit:
Thank you all so much for 500 downloads! It means the world to me that you chose my plugin to use. <3
Cheers!
~ Foxikle