New Features:
- 1.21.5 - 1.21.8 support
- NPC Poses
- There are 6 possible poses: Standing, Sitting, Crouching, Swimming, Dying, and Sleeping.
- NPC Nudging
- Nudging is way to move NPCs a little bit at a time to precisely position them. Crouching while scrolling increases the move increment from .05 blocks per slot to .25 blocks per slot scrolled over.
- Native Multi-line Holograms
- Your existing names are automatically converted to the new system
- The Ability to flip NPCs upside down
- This option is accessed in the extra settings menu (Top right comparator)
- The ability to add cooldowns to actions
- The configuration of them is very similar to configuring delay. There is no message for an action being on cooldown.
Bug Fixes
- Fixed the UUID being visible with a teamless approach, which is much more tolerant to other plugins
- Fixed being able to supply textual input to multiple actions at once
- Fixed the sleeping percentage not being respected if it was changed after the server started
- Fixed Elytras not being able to be equiped in the chest slot
- Fixed problems with clicking items in the equipment menu
- Changed the default NPC name to "An unnamed NPC"
- NPC nametags follow a lot smoother
- NPCs no longer have a visible armor stand riding them in spectator mode
- NPCs now ignore spectators and do not look at them
- Fixed importing skins from URLS
- Fixed some issues with the commands library
- Fixed errors with menus on latest paper versions
- Fixed some issues with dependency downloading at runtime (Thanks paper!)
Developer Changes
- The NPC#moveTo(Location) was renamed to NPC#teleport(Location) as moveTo is reserved for other movement related features coming later :)
- The Settings class now has a method to import a player's skin directly from a player object
- NPCs no longer have "names", but rather an array of "lines". The get/set name methods are now deprecated and just affect the top line.
- Poses can be changed in the settings object
- Added a "facing" system, to be more consistent with how NPC yaw and pitch are handled.
- Custom actions should call the
Action#activateCooldown(UUID)
in therperform
method.
Fixed the upside down button not working (whoops!)
This version adds the ability to flip NPCs upside down. This feature can be accessed in the extra settings menu.
- Fixed the plugin not enabling on 1.21.8
- Added cooldowns to actions, defaulting to 0.
Bug fixes:
-
Fixes errors with menus on latest paper versions
-
Other misc repo fixes
There are no visible changes this release.
Fixed library loading issues causing the plugin to not load
New Features:
- 1.21.6-7 support
Bug Fixes:
- Updated commands
- Fixed importing skins from URLs
- Fixed spectators not actually being ignored
Developer changes:
- Added a "facing" system, to be more consistent with how NPC yaw and pitch are handled.
New Features:
- NPC Poses
- NPCs can now be posed! There are 6 possible poses: Standing, Sitting, Crouching, Swimming, Dying, and Sleeping.
- NPC Nudging
- Nudging is way to move NPCs a little bit at a time to precisely position them. Crouching while scrolling increases the move increment from .05 blocks per slot to .25 blocks per slot scrolled over.
- Native Multi Line Holograms
- Instead of using the
<newline>
minimessage tag, you can now create separate lines. Your existing data will be converted automatically.
- Instead of using the
Bug Fixes
- Fixed a bug preventing Elytras from being equipable on the chest slot
- Fixed some problems with the equipment menu
- The default name of NPCs was changed from
not set
toAn Unamed NPC
- NPCs nametags should follow them a lot better now
- NPCs no longer have a visible armor stand riding them in spectator mode
- A bunch of minute fixes I didn't write down
- NPCs now ignore spectators and won't look at them
Developer changes
- The
NPC#moveTo(Location)
was renamed toNPC#teleport(Location)
as moveTo is reserved for other movement related features coming later :wink: - The Settings class now has a method to import a player's skin
- NPCs no longer have "names", but rather an array of "lines". The get/set name methods are now deprecated and just affect the top line.
- Poses can be changed in the settings object
- This update can be used via the
1.7.5-pre2
api version
This update took way longer than it should have, but now it's here :) ~ Foxikle <3
New Features:
- 1.21.5 support
Bug Fixes
- Fix npc UUID being visible by using a different (teamless) approach
- Fixed being able to supply textual input for several actions at once
- Fixed the sleeping percentage not being respected if it was changed after server start **
Known Issues:
- Dragging items in an inventory will throw an error. It is a result of the PaperMC developers not supporting bytecode rewriting on paper plugins. I cannot do anything about it, complain to them.
- There is a rare kick that occurs when creating NPCs. I'm not sure what causes it, but I'm working on finding out.
Roadmap:
Before 1.8 and the new data serializing and storage, I want to get the following features implemented:
- Proper multi-line NPC holograms
- Poses (sitting, swimming, etc)
Note about sleeping percentages: The plugin modifies the sleeping percentage to be equivalent to the percentage you supplied, correcting for the number NPCs. So if your server has a sleeping percentage of 100 and your world has 1 NPC, the percentage from running the command /gamerule playersSleepingPercentage
will be 50.
This is a pretty small release, but it fixes:
- Injection issues on dimension change and join
- Setting the sleeping percentage incorrectly
- It now respects user defined sleeping percentages via the gamerule
This release includes mostly bug fixes from the past month
- Fixed the display buttons in the teleport customizer menu always showing the X coordinate
- Fixed the volume and pitch being reversed when playing a sound
- Fixed the load order of dependencies
- Created a new
/npc debug
command to help you help me help you. (When seeking support it provides useful information to me) - Made some minor improvements to injection logic around different dimensions
- Added a config option to interpolate npc nametags on teleport
IMPORTANT NOTE: This release REMOVES the ability to use this plugin on a spigot server. As a bonus of this, the plugin will now load the required dependencies at runtime. This makes the final jar file a lot smaller (about 10 times smaller!). The downside is it can take a "while" (about 2 minutes, in my case) to download the required dependencies. This is advantageous, as it stores the downloaded dependencies and only needs to download them once!
Okay on with the patch notes:
Bug Fixes
- Fixes errors on 1.21.3+ servers when using like anything on the server
- Fixes hologram injection issues in some cases
- The SetSound action now uses keyed sounds (
minecraft:ui.button.click
), instead ofui_button_click
. This is potentially detrimental as it will not convert from old sounds. (The actions still run, a warning is printed to the console and no sound is played). BUT, this lets you play resource pack sounds now! Just use the namespace and the sound id.namspace:id
.
This is mostly a bug fix type of update as I have started working on the 1.8 series of updates, starting with optimized data storage. So you can look forward to that ;) Foxikle <3
CustomNPCs v1.7.1
- Fixed critical bug with condition parsing, preventing NPCs from loading
- Fixed the config being backed up every time the server started
CustomNPCs 1.7
I 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
New Features
- 1.20.5 - 1.21.4 Support.
- Localization! CustomNPCs now supports the following languages:
- Russian (partially)
- German (partially)
- Arabic (partially)
- Simplified Chinese (fully)
- Vietnamese (fully)
- English (fully)
- An action System rewrite
- Custom Actions can be registered via the API
- the RunCommand action can now run commands as the console please be careful
- The RunCommand action will now parse placeholders in the raw command text
- The DisplayTitle action can now have a subtitle
- Various performance enhancements
- A new command
/npc fixconfig
:- Requres the
customnpcs.commands.fix_config
permission - 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
- Requres the
- A new command framework
- The NPC configuration is validated on the first parse, rather than on load
- There is now a special permission for the wiki command;
customnpcs.commands.wiki
Bug Fixes:
- Fixed a bunch of injection issues causing NPCs to not appear properly
- Fixed NPCs affecting the sleeping percentage
- Fixed NPCs disappearing after respawning
- Fixed NPCs being injected in the wrong dimension
- Fixed NPC nametags being visible (The numbers and letters)
- Fixed a bunch of errors related to the events portion of the api
- Fixed an error with /reload
- Fixed an issue where you could not decrease the DisplayTitle's fade out option if the fade in option was 1
- Fixed loading the NPC's facing direction incorrectly
Developer Changes
- Removed the Bukkit services api (Not like anyone used it)
- Settings#direction is now deprecated. You should use the yaw of the SpawnLocation instead
- You can write your own actions. Read the documentation to find out how :)
Bug fix:
- Fixed loading the NPC's facing direction incorrectly
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
This is a hotfix for 1.7-pre8 that addresses issues with upgrading the NPC file
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>)