✅ [API] Player NPC ✅  [1.17 - 1.20.1] icon

✅ [API] Player NPC ✅ [1.17 - 1.20.1] -----

Player NPC Lib via packets API for 1.17, 1.18, 1.19 & 1.20




PlayerNPC 2023.6 version

Since the third-party API used for auto-update has been deprecated, this feature is temporarily removed in this release to avoid the update loop. I apologize for the inconvenience caused.
----------, Jun 15, 2023

PlayerNPC 2023.5 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!
  • Added support for Spigot 1.20 and 1.20.1
  • New advanced placeholders.
    • Text placeholders are inside brackets '{placeholder}'
    • Advanced placeholders format is {placeholder:value} or {placeholder:value;default}
  • New bungeecord integration with placeholders.
  • New /npcglobal settextupdateticks to automatically refresh npc text.
  • Added HEX color support. Use &#ffffff
----------, Jun 14, 2023

PlayerNPC 2023.4 version

Before updating your plugin, check if all dependencies are updated with this version.

CAUTION! If your plugin uses API, you must rebuild the entire project due to a change on methods, now returning Updatable object, instead of void. If you don't rebuild, it will throw NoSuchMethodException.


New features!
  • Added support for Spigot 1.19.4
  • New Updatable system for NPCs. Now you can change any NPC attribute and update it with npc.set{Attribute}().update(); Or you can update every pending update with npc.update();. If method do not return anything but void, you will not need update to send it to client.
    • Previous method called npc.update(); is now called npc.simpleUpdate();
  • New NameTag, you will be able to set the entity name (with preffix and suffix), and can be show above player. It's recommended to use hologram text instead of nametag.
    • Each Prefix, Name, Suffix can have 16 characters lenght.
    • It's recommended to not use color codes on Name, but can be used on Suffix and Preffix.
  • Added new TabList visibility options:
    • You can set TabList Name with no restrictions. (Can have infinite characters, and colors).
    • New TabList visibilities:
      • NEVER (Only will appear a few ticks after spawning on client, but it can be never shown setting ticks to 0, on 1.19.3+ clients).
      • NEAR (When NPC is shown on client, this was actual showOnTabList as true)
      • SAME_WORLD (When player is at the same world as NPC)
      • ALWAYS (NPC will appear on tablist always)
  • Now on some methods that used to return Nullable objects, it will return Optional<Object>. Methods now will be called "grab" instead of "get".
    • On NPC management: NPCLib.getInstance().getGlobalNPC(id) -> grabGlobalNPC(id)
    • On NPC Custom Data: npc.getCustomData(id) -grabCustomData(id);
    • On Skin Fetch Results: fetchResult.getSkin() -> grabSkin();
  • Added npc.getEyeLocation();
Bug fixes
  • Fixed scoreboard error while using proxy. To solve that, you need to enable "useBukkitScoreboards" at /plugins/PlayerNPC/config.yml
  • Now NPCs will be shown without FOV restrictions on 1.19.3+ clients, due to a Minecraft bugfix with skin load on clients.
  • Fixed Preview of Custom Skins
----------, Mar 19, 2023

PlayerNPC 2023.3 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!
  • New ID system for NPCs, Custom Data and Custom Skins
    • To get ID use: NPCLib.Registry.ID.of(Plugin, String)
    • On NPC use npc.getID() instead of npc.getCode()
  • Added new metadata attributes
    • Ground particles
      • Use npc.setGroudParticles(boolean)
      • Use npc.isGroundParticles()
    • Potion particles
      • Use npc.setPotionParticlesColor(Color)
      • Use npc.setPotionParticlesType(NPC.PotionParticlesType)
      • Use npc.getPotionParticlesColor()
      • Use npc.getPotionParticlesType()
    • Arrows in body
      • Use npc.setArrowsInBody(int)
      • Use npc.getArrowsInBody()
    • Bee stingers in body
      • Use npc.setBeeStingersInBody(int)
      • Use npc.getBeeStingersInBody()
    • Shaking
      • Use npc.setShaking(boolean)
      • Use npc.isShaking()
  • Added Item on NPC.Hologram
    • Text item
      • Use npc.setTextItem(ItemStack)
      • Use npc.getTextItem()
    • Text item glowing
      • Use npc.setTextItemGlowing(boolean)
      • Use npc.isTextItemGlowing()
    • Text item glowing color
      • Use npc.setTextItemGlowingColor(NPC.Color)
      • Use npc.getTextItemGlowingColor()
  • Added new colorful UI command suggestions on some commands (Soon will be available on more commands).
  • Added NPC.Skin.Minecraft.getSkinGameProfile(Player) to get the exact skin as player is wearing (usefull for ex. to create a corpse of the player).
  • Added support with ViaVersion API to customize client experience based on it's version
Bug fixes
  • Fixed tablist on 1.19.3 and previous versions
  • Fixed skins not appearing on player join.
  • Fixed setPose update, now will no longer need forceUpdate, only if the new pose is STANDING, or previous pose was SPIN_ATTACK
  • Now forceUpdate will take far less time to re-appear.
  • Now setGlowingColor will no longer need forceUpdate(), just update()
  • Fixed skin fetching on server offline mode.
  • Improved ownPlayerSkin on NPC.Global
  • Fixed movement, not working on 1.18.2+
  • Fixed scoreboard teams on clients 1.18+
  • Fixed /npcglobal action (id) add (click) player_teleport_to_location
----------, Feb 19, 2023

PlayerNPC 2023.2 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!
  • Fixed tablist on 1.19.2 or previous versions *
  • Modified NPC.Skin.Parts to NPC.Skin.VisibleLayers
  • Added new way to set skin from an URL as CLASSIC, SLIM or AUTO.
  • Fetch skin (as CompletableFuture) now returns a FetchResult that may contains the Skin or an Error

(*) Tablist on 1.19.3 version is buggy due an error on NMS, in next versions i will try to fix it.
----------, Jan 29, 2023

PlayerNPC 2023.2 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Fixed tablist on 1.19.2 or previous versions *
  • Modified NPC.Skin.Parts to NPC.Skin.VisibleLayers
  • Added new way to set skin from an URL as CLASSIC, SLIM or AUTO.
  • Fetch skin (as CompletableFuture) now returns a FetchResult that may contains the Skin or an Error

(*) Tablist on 1.19.3 version is buggy due an error on NMS, in next versions i will try to fix it.
----------, Jan 29, 2023

PlayerNPC 2023.1 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Added support for Spigot 1.19.3
  • Added new Click Actions
  • Fixed metadata for onFire NPC.
  • Due to an external error on metadata bitmask, turning off glowing needs to do forceUpdate, instead of update on 1.19.3
----------, Jan 1, 2023

PlayerNPC 2022.8 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Added support from Spigot 1.17 to 1.19.2
  • Added automatic plugin updater.
  • Added new skin types (Minecraft, Mineskin, Custom)
  • Added new command to download skins from an url /npclib getskininfo url (url) or /npcglobal setskin url (url)
  • NPC Global command now auto updates NPC after a change.
  • Added a new menu to modify Click Actions through /npcglobal action (id) modify
    • Added new Click Actions...
  • Added Conditions for the Click Actions
    • Player has permission
    • Sentence comparator
----------, Aug 12, 2022

PlayerNPC API 2022.7 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Added support for Spigot 1.19.1
----------, Jul 28, 2022

PlayerNPC API 2022.6 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Added support for Spigot 1.18.x - 1.19
  • Added Persistent NPCs
  • Added /npclib command
Code changes:
  • When your plugin enables you MUST do NPCLib.getInstance().registerPlugin(plugin);
  • Added NPCLib.getInstance().getPluginManager(plugin).setSkinUpdateFrequency(new NPCLib.SkinUpdateFrequency(Integer, TimeUnit));
  • Changed FollowLookType to GazeTrackingType
  • Changed npc.setFollowLookType() to npc.setGazeTrackingType();
  • Changed NPCLib.getInstance().setUpdateGazeType(UpdateGazeType) to NPCLib.getInstance(),getPluginManager(plugin).setUpdateGazeType(UpdateGazeType);
  • Changed NPCLib.getInstance().setUpdateGazeTicks(ticks) to NPCLib.getInstance(),getPluginManager(plugin).setUpdateGazeTicks(ticks);
  • Changed NPCLib.getInstance().setTicksUntilTabListHide(ticks) to NPCLib.getInstance(),getPluginManager(plugin).setTicksUntilTabListHide(ticks);
I hope you enjoy this new update, and leave feedback. Thank you for using PlayerNPC API :)
----------, Jul 21, 2022

PlayerNPC API 2022.5 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Added support for Spigot 1.19
  • Removed support from Spigot 1.18-1.18.2
  • Added /npcglobal command
  • Renamed /npcpersonal command
Future updates:
  • Persistent NPCs will be the posibility to save all the Global NPC data into a file, and will be saved when the server closes, and loaded when the server starts. With this you will be able to create NPCs that will be persistent forever, until you remove it. Very useful, for example, to create the NPCs of a Lobby for selecting game modes. This feature will be introduced in a few updates ahead.
I hope you enjoy this new update, and leave feedback. Thank you for using PlayerNPC API :)
----------, Jun 26, 2022

PlayerNPC API 2022.4 version

Before updating your plugin, check if all dependencies are updated with this version.

New features!

  • Added Global NPC
  • Added NPC.Placeholders

Code changes (this may produce errors on old plugin dependencies)
  • Now for Personal NPC, (previously NPC), use NPC.Personal
    • To generate a Personal NPC use NPCLib.getInstance().generatePersonalNPC(Player, Plugin, String code, Location);

Future updates:

  • Persistent NPCs will be the posibility to save all the Global NPC data into a file, and will be saved when the server closes, and loaded when the server starts. With this you will be able to create NPCs that will be persistent forever, until you remove it. Very useful, for example, to create the NPCs of a Lobby for selecting game modes. This feature will be introduced in a few updates ahead.
  • NPC command will be more useful, with all this new features. Remmeber that this command is only for experimental purposes, and in the future will be fully usefull with the Persistent and Global NPCs
I hope you enjoy this new update, and leave feedback. Thank you for using PlayerNPC API :)
----------, May 24, 2022

PlayerNPC API 2022.3 version

Before updating your plugin, check if all dependencies are updated with this version.


New features!

  • Added support for Spigot 1.18.2
  • Currently supported versions 1.18, 1.18.1, 1.18.2
  • To generate an NPC instance now use NPCLib.getInstance().generateNPC(Player, Plugin, String, Location)
  • To get an NPC instance now use NPCLib.getInstance().getNPC(Player, Plugin, String);
  • Added npc.getEntity();
  • Added NPC.Skin.Part enum with CAPE, JACKET, LEFT and RIGHT SLEEVE, LEFT and RIGHT PANTS, HAT
  • Added new methods on NPC.Skin.Parts

Code changes (this may produce errors on old plugin dependencies)
  • NPC instances now require to specify the Plugin when creating the instance. This will produce that the npc.getCode(); will be "yourPluginName.code". You can also get only the code without the prefix with npc.getSimpleCode();
  • Now all NPC methods are voids, no longer returning the NPC instance.

Future updates:

  • Global NPCs will be and object to manage a Global NPC object that will manage all the personal NPCs of all the players. This will help to create NPCs visible for all the players, but customizable for each player at the same time (for example, all the players will see the NPC but each will see with their own Skin), and this will redouce server lag. This is a lot requested feature, and will be introduced probably in the next update.
  • Persistent NPCs will be the posibility to save all the Global NPC data into a file, and will be saved when the server closes, and loaded when the server starts. With this you will be able to create NPCs that will be persistent forever, until you remove it. Very useful, for example, to create the NPCs of a Lobby for selecting game modes. This feature will be introduced in a few updates ahead.
  • NPC command will be more useful, with all this new features. Remmeber that this command is only for experimental purposes, and in the future will be fully usefull with the Persistent and Global NPCs
I hope you enjoy this new update, and leave feedback. Thank you for using PlayerNPC API :)
----------, Mar 17, 2022

This is a BIG update to the API, please read carefully all the changes.

Before updating your plugin, check if all dependencies are updated with this version.


New features!
  • Introducing Movement for the NPCs. This means that now you can move the NPCs around the world (walking, crouching, swimming, etc..) Click here to see an example.
    • Added NPC.Move.Speed with (SLOW, NORMAL, SPRINT)
    • Added npc.goTo(Location, boolean lookToEnd, NPC.Move.Speed);
    • Added npc.goTo(Location);
    • Added npc.goTo(Location, boolean lookToEnd);
    • Added npc.goTo(Location, NPC.Move.Speed);
    • Added npc.cancelMove();
    • Added npc.setMoveSpeed(NPC.Move.Speed);
    • Added npc.setMoveSpeed(double);
  • Introducing Move Behaviour for the NPCs. This means that NPCs automatically will move following the selected behaviour. There are 4 types of behaviour:
    • Follow Player: The NPC will follow the player who see its around the world, and if the target changes the world, the NPC will continue following.
      • Added npc.followPlayer();
      • Added npc.followPlayer(double minDistance, double maxDistance);
    • Follow Entity: The NPC will follow the selected entity around the world.
      • Added npc.follow(Entity);
      • Added npc.follow(Entity, double minDistance, double maxDistance);
      • Added npc.follow(Entity, double minDistance);
    • Follow NPC: The NPC will follow another NPC around the world. Note: NPC cannot follow himself.
      • Added npc.follow(NPC);
      • Added npc.follow(NPC, double minDistance, double maxDistance);
    • Custom Path: The NPC will go to the different locations, following the path. The Path have different types
      • Repetitive path: The NPC will do the path, and when finish, it will do the path another time, everytime.
        • Added npc.setRepetitivePath(Location...);
        • Added npc.setRepetitivePath(List<Location>);
      • Normal path: The NPC will do the path, but when finish it, it will remain at the last location.
      • Back to Start path: The NPC will do the path, and when it finish, it will return to the start location.
      • Added npc.setPath(Move.Path.Type, List<Location>);
      • Added npc.setPath(Move.Path.Type, Location...);
    • Added npc.cancelMoveBehaviour();
  • Introducing Animations, with this feature you will be able to play some animations on the NPC such as (SWING_MAIN_ARM, TAKE_DAMAGE, SWING_OFF_HAND, CRITICAL_EFFECT, MAGICAL_CRITICAL_EFFECT)
    • Added npc.playAnimation(NPC.Animation);
    • Added npc.hit();
  • You will be able to set the NPC on fire. (Known bug: setting off fire while NPC is glowing won't work, because of a Metadata bug)
    • Added npc.setOnFire(boolean);
    • Added npc.setFireTicks(Integer);
  • You will be able to Teleport between worlds, you only need to teleport the NPC to a location with a different world.
    • Added npc.teleport(World, double x, double y, double z);
    • Added npc.teleport(World, double x, double y, double z, float yaw, float pitch);
    • Updated npc.teleport(Location); and npc.teleport(Entity);
  • Added New Events to listen on a Listener:
    • Added NPC.Events.FinishMove
    • Added NPC.Events.Move
    • Added NPC.Events.Teleport
    • Added NPC.Events.StartMove
  • Added New Custom Click Actions, to add when player interacts at the NPC.
    • Send to a Bungee Server
      • Added npc.addConnectBungeeServerClickAction(NPC.Interact.ClickType clickType, String server)
      • Added npc.addConnectBungeeServerClickAction(String server)
    • Send ActionBar message
      • Added npc.addActionBarMessageClickAction(NPC.Interact.ClickType clickType, String message);
      • Added npc.addActionBarMessageClickAction(String message);
    • Send Title and Subtitlte
      • Added npc.addTitleMessageClickAction(NPC.Interact.ClickType clickType, String title, String subtitle, int fadeIn, int stay, int fadeOut);
      • Added npc.addTitleMessageClickAction(String title, String subtitle, int fadeIn, int stay, int fadeOut);
  • Introducing Skin Parts, whit this new feature, you will be able to customize the parts of the NPC.Skin. Note: when setting the parts of the NPC.Skin, you will need to do npc.setSkin(NPC.Skin); to apply changes to the NPC's skin.
    • Added npcSkin.getParts();
    • Added npcSkin.getParts().enableAll();
    • Added npcSkin.getParts().disableAll();
    • Parts of the NPC.Skin (Cape, Jacket, Left Sleeve, Right Sleeve, Left Pants, Right Pants, Hat)
  • Added npc.setGlowingColor(NPC.Color);
  • Added npc.lookAt(float yaw, float pitch);
Code changes (this may produce errors on old plugin dependencies)

With this new update, all the objects previously called NPCObject are now called NPC.Object , and other things are moved into a more organized way.
  • NPCSkin is now called NPC.Skin
  • All the events are now called different.
    • NPCHideEvent is now called NPC.Events.Hide
    • NPCShowEvent is now called NPC.Events.Show
    • NPCInteractEvent is now called NPC.Events.Interact
  • NPCAttributes is now called NPC.Attributes
  • NPC.TextOpacity is now called NPC.Hologram.Opacity
  • NPCInteractEvent.ClickType is now called NPC.Interact.ClickType

Future updates:

  • Global NPCs will be and object to manage a Global NPC object that will manage all the personal NPCs of all the players. This will help to create NPCs visible for all the players, but customizable for each player at the same time (for example, all the players will see the NPC but each will see with their own Skin), and this will redouce server lag. This is a lot requested feature, and will be introduced probably in the next update.
  • Persistent NPCs will be the posibility to save all the Global NPC data into a file, and will be saved when the server closes, and loaded when the server starts. With this you will be able to create NPCs that will be persistent forever, until you remove it. Very useful, for example, to create the NPCs of a Lobby for selecting game modes. This feature will be introduced in a few updates ahead.
  • NPC command will be more useful, with all this new features. Remmeber that this command is only for experimental purposes, and in the future will be fully usefull with the Persistent and Global NPCs
I hope you enjoy this new update, and leave feedback. Thank you for using PlayerNPC API :)
----------, Feb 12, 2022

This is a BIG update to the API, please read carefully all the changes.

Before updating your plugin, check if all dependencies are updated with this version.


New features!
  • Introducing Text Opacity and Line Opacity, with this new feature you can modify the opacity of the text above NPC. Click to see an example. Line Opacity has more priority than Text Opacity, if Line Opacity is not setted, that line will have the Text Opacity. Notice that as a more Opacity, more entities will be send to the Player's client, so this may produce lag, and can produce lag to the Server also.
    • Added NPC.TextOpacity with (LOWEST, LOW, MEDIUM, HARD, HARDER, FULL)
    • Added npc.setTextOpacity(NPC.TextOpacity);
    • Added npc.getTextOpacity();
    • Added npc.resetTextOpacity();
    • Added npc.setLineOpacity(int, NPC.TextOpacity);
    • Added npc.getLineOpacity(int);
    • Added npc.resetLineOpacity(int);
    • Added /settextopacity (player) (id) (textopacity)
    • Added /setlineopacity (player) (id) (line) (lineopacity)
    • Any change will need npc.forceUpdateText();
  • Introducing Click Actions. This will allow you to set Click Actions for the NPC that are going to be called when a Player interacts with it. By cancelling NPCInteractEvent, this actions won't be executed.
    • Added npc.addRunPlayerCommandClickAction(NPCInteractEvent.ClickType, String);
    • Added npc.addRunConsoleCommandClickAction(NPCInteractEvent.ClickType, String);
    • Added npc.addMessageClickAction(NPCInteractEvent.ClickType, String);
    • Added npc.addCustomClickAction(NPCInteractEvent.ClickType, CustomClickAction);
    • Added npc.resetClickActions(); and npc.resetClickActions(NPCInteractEvent.ClickType);
  • Introducing NPCAttributes. This will allow you to create an abstract copy of some attributes of an NPC, and paste it on another NPC, even if it's not from the same Player. This is a great tool to create "global" NPC attributes. Also this tool allows you to set Default attributes for every NPC thats is created after setting this. Use NPCAttributes.setDefault.... or NPCAttributes.getDefault... or with an instance of an NPCAttributes (like npc.getNPCAttributes()), use npcAttributes.set... or npcAttributes.get... To apply changes, use npcAttributes.applyNPC(NPC); Variables that are supported by NPCAttributes:
    • NPCSkin
    • Text above NPC
    • NPC items
    • Collidable
    • Hide distance
    • Glowing
    • Glowing color
    • FollowLookType
    • Custom Tab List Name
    • Show on Tab List
    • Interact Cooldown
    • Line Spacing
    • Text Alignment
    • NPC Pose
  • Introducing Line Spacing. This will allow you to set the distance between the lines of the text above NPC. By default 0.27
    • Added npc.setLineSpacing(double);
    • Added npc.resetLineSpacing();
    • Added npc.getLineSpacing();
    • Added /npc setlinespacing (player) (id) (double/reset)
  • Introducing Text Alignment. This will allow you to adjust the NPC Hologram location, respect the NPC location throught a Vector. By default (0, 1.75, 0)
    • Added npc.setTextAlignment(Vector);
    • Added npc.resetTextAlignment();
    • Added npc.getTextAlignment();
    • Added /npc settextalignment (player) (id) (vector/reset)
  • Now you can set custom interact cooldown in milliseconds for each NPC. By default 200 milliseconds.
    • Added npc.setInteractCooldown(long);
    • Added npc.resetInteractCooldown();
    • Added npc.getInteractCooldown();
  • Added new methods to set items on NPC
    • Added npc.setHelmet(ItemStack);
    • Added npc.setChestplate(ItemStack);
    • Added npc.setLeggingsItemStack);
    • Added npc.setBoots(ItemStack);
    • Added npc.setItemInRightHand(ItemStack);
    • Added npc.setItemInLeftHand(ItemStack);
  • Now the /npc command is available throught Console
  • New NPC interact system, using PacketReader to read the ClickType. Now is 100% accurate.
Code changes (this may produce errors on old plugin dependencies)
  • NPCSlot enum is now called NPC.Slot
  • NPCPose enum is now called NPC.Pose
  • NPCLib.getInstance().setDefaultHideDistance(double) is now Deprecated, use instead NPCAttributes.setDefaultHideDistance(double)
  • NPCLib.getInstance().getDefaultHideDistance(double) is now Deprecated, use instead NPCAttributes.getDefaultHideDistance(double)

Bug fixes:

  • Fixed bug when automatic update look to player, and the player was in a different dimension as the NPC.
  • Fixed correctly NPC interact detection.
  • As this update is so big, is probably that bugs can appear. If you find any bug, please contact me.
  • Now when cancelling NPCInteractEvent, the Custom actions of the NPC will not be called.
  • Minor bug fixes
Happy new year 2022!
----------, Jan 1, 2022

  • Added support for Spigot 1.18 and 1.18.1
  • Removed support for Spigot 1.17 and 1.17.1, you can still use PlayerNPC v2021.4
  • Bug fixes
----------, Dec 12, 2021

  • Fixed error PacketPlayOutEntityDestroy on Spigot version 1.17.1
  • New methods at NPCLib:
    • getNPCs(Player, prefix)
    • getNPCs(Player, World)
  • More documentation on NPCLib
  • Fixed bugs
----------, Nov 18, 2021

  • Added support for SergiFerry Spigot Plugin API
  • Fixed bug on npc.setText(String)
  • Fixed async error on update look when using NEAREST_PLAYER or NEAREST_ENTITY
  • Some methods on NPCLib class are now private.
  • Bug fixes
----------, Sep 26, 2021

  • Added NPCPose, now you can set the pose of the NPC as (STANDING, SWIMMING, SLEEPING, CROUCHING). You can set it throught API as npc.setPose(NPCPose); or throught command as /npc setpose (player) (id) (npcpose)
  • Added a new automatic move detection, you can choose between PlayerMoveEvent, or a runnable in ticks (5 by default). You can set it with NPCLib.getInstance().setUpdateLookType(UpdateLookType); and you can set the amount of ticks with NPCLib.getInstance().setUpdateLookTicks(int ticks);
  • Now NPC will display the skin overlay (cape, etc..)
  • Bug fixes
----------, Aug 21, 2021

This is a big update to the API, please read carefully all the changes.
  • Added a GitHub repository with the source code, and now you can also accest to the JavaDocs.
  • Now NPCLib instance will be accesible throught NPCLib.getInstance(); Do not create an instance, like you did before.
  • To generate an NPC instance now is NPCLib.getInstance().generateNPC(Player, String, Location);
  • Now to access to the NPC instance generated before use NPCLib.getInstance().getNPC(Player, String);
  • To destroy an NPC use npc.destroy(); and it can be created before, if you want to remove the instance use NPCLib.getInstance().removeNPC(Player, String);
  • Now all the attributes that were neccesary to set before creating the NPC, you can set anytime an then using npc.forceUpdate();
  • Now you can set that the NPC will be visible on tab list, with a custom name with npc.setCustomTabListName(String, boolean);
  • Now you can set how the NPC will follow it's look direction with npc.setFollowLookType(FollowLookType);
  • Changed version counter, now its {year}.{yearVersion} (2021.1)
  • Added an UpdateChecker, this will send a message when an OP joins the server and there's an update available of the plugin.
  • Bug fixes.
----------, Aug 16, 2021

  • Fixed error PacketPlayOutEntityDestroy on Spigot version 1.17.1
  • Bug fixes
----------, Aug 7, 2021

  • Added Glowing to NPCs, use npc.setGlowing(boolean, color) at API or /npc setglowing (player) (id) (boolean) and /npc setglowingcolor (player) (id) (color)
  • Now NPCs will not be spawned at client side before the player aims it's FOV to the NPC. This will fix some skin bugs.
  • Fixed RIGHT click on NPC with no item in hand. When LEFT clicking at NPC with no item in hand and looking to another block behind NPC it will detect RIGHT click :( , i'm trying to fix.
  • Bug fixes.
upload_2021-7-12_17-59-34.png
----------, Jul 12, 2021

  • Added NMS, this means that this plugin will be compatible with every versión (1.17+), as long as this Java version (16) is compatible.
  • Bug fixes.
----------, Jul 6, 2021

  • Some suggested commands will replace npc values
  • Added Metrics
  • Bug fixes
----------, Jul 3, 2021

  • Added /npc lookat (player) (id) (player/location)
  • Now on /npc setskin or /npc changeskin or in the API methods, you can introduce names of players, even when offline, and API fetches the skin from Mojang servers.
  • Now on /npc setitem you can specify Material on last argument
  • Added support for offline-mode servers with skins.
  • Bug fixes
----------, Jun 28, 2021

  • Now you can set skin with offline players.
  • Bug fixes.
----------, Jun 27, 2021

  • New command /npc. Use /npc help to see all the available arguments.
  • Fixed some client crashes while interacting with entities when they had an NPC generated but not created.
  • Fixed ClickType on NPCInteractEvent. Now will listen correctly the Right or Left click, while clicking near a block.
  • Bug fixes.
----------, Jun 27, 2021

  • Added ClickType on NPCInteractEvent, now you can see if it's right or left click.
  • Fixed NPC teleport. Now only use npc.teleport(location or entity);
  • Added npc.hideText(true) that will hide the NPC Hologram, and it won't appear until you do npc.hideText(false);
  • Bug fixes.
----------, Jun 26, 2021

  • Fixed bug that produced crashes in the clients. Now when updating the skin, the previous one is deleted from the GameProfile.
  • Bug fixes
----------, Jun 25, 2021

  • Added multiworld support. Now npcs will automatically hide when changing world, and automatically showing when re-enter the world.
  • Added automatic hide when far away. You can set the distance with npcLib.setHideDistance(double); (Default 50 blocks distance)
  • Bug fixes.
----------, Jun 25, 2021

  • Bug fixes.
----------, Jun 25, 2021

Resource Information
Author:
----------
Total Downloads: 63,698
First Release: Jun 25, 2021
Last Update: Jun 15, 2023
Category: ---------------
All-Time Rating:
42 ratings
Find more info at sergiferry.github.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings