服务器使用量
未统计
服务玩家数
未统计
下载量
64,962
插件详细介绍
PlayerNPC 是一款适用于 Spigot 服务器的简易 NPC API,它允许你为每位玩家创建专属的 NPC。该插件由 SergiFerry 开发。
命令与权限
/npclib- 用于自定义 NPCLib。/npcglobal- 用于自定义全局 NPC。/npcpersonal- 用于自定义个人 NPC(此为实验性命令,仅供开发者测试,重启服务器后更改不会保存)。
所有命令的使用权限均为:playernpc.command。对持久化 NPC 所做的更改将在服务器重启后保留。
使用此 API 的插件
- Corpses - 开发者:SergiFerry
- RandomTeleport - 开发者:SergiFerry
- Graves - 开发者:Ranull
如果你的插件也使用了 PlayerNPC API,可以通过 Twitter @SergiFerry 联系作者以展示在此处。
开发者集成指南
完整的 JavaDocs 可在以下地址查看:https://sergiferry.github.io/PlayerNPC/
安装与依赖
- 将
PlayerNPC.jar放入服务器的/plugins文件夹。 - 将 JAR 文件添加到你 Java 项目的库中。
Maven 依赖配置:
<repository>
<id>ranull-repo-external</id>
<url>https://repo.ranull.com/maven/external/</url>
</repository>
<dependency>
<groupId>dev.sergiferry</groupId>
<artifactId>playernpc</artifactId>
<version>2023.4</version>
<scope>provided</scope>
</dependency>基础使用步骤
首先,注册你的插件到 NPCLib:
NPCLib.getInstance().registerPlugin(plugin);第一步:生成 NPC 实例
// 生成全局 NPC
NPC.Global npc = NPCLib.getInstance().generateGlobalNPC(plugin, id, location);
// 或生成个人 NPC
NPC.Personal npc = NPCLib.getInstance().generatePersonalNPC(player, plugin, id, location);第二步:修改 NPC 属性
npc.setSkin(texture, signature); // 可使用 https://mineskin.org/ 获取皮肤
npc.setItem(NPC.Slot, ItemStack);
npc.setText(String...);
npc.setGlowing(boolean, ChatColor);
npc.setCollidable(boolean);
npc.setGazeTrackingType(NPC.GazeTrackingType);
npc.setCustomTabListName(String, boolean);
npc.setHideDistance(double);
npc.setShowOnTabList(boolean);
npc.setInteractCooldown(long);
npc.setLineSpacing(double);
npc.setTextOpacity(NPC.Hologram.Opacity);
npc.setTextAlignment(Vector);
npc.setPose(NPC.Pose);
npc.addCustomClickAction(NPC.Interact.ClickType, CustomAction);第三步:对于个人 NPC,需要创建并显示给玩家
npc.create();
npc.show();监听与交互
你可以监听玩家与 NPC 的交互事件,但更推荐使用 ClickActions:
@EventHandler
public void onNPCInteract(NPC.Events.Interact event) {
Player player = event.getPlayer();
NPC npc = event.getNPC();
NPC.Interact.ClickType clickType = event.getClickType();
}NPC 管理操作
隐藏或销毁 NPC:
npc.hide(); // 临时隐藏
npc.destroy(); // 永久销毁更新 NPC 皮肤(即使 NPC 已创建并显示):
npc.setSkin(NPC.Skin);
npc.forceUpdate();改变 NPC 注视方向:
npc.lookAt(location);
npc.update();传送 NPC:
npc.teleport(location);修改 NPC 上方文本:
npc.setText(String...);
npc.setLineOpacity(Integer, NPC.Hologram.Opacity);
npc.updateText(); // 当文本行数不变时使用
npc.forceUpdateText(); // 当文本行数改变时使用
npc.setHideText(boolean); // 可隐藏文本,稍后再显示重要提示
请记住,对 NPC 实例的某些更改在调用更新方法前,不会在玩家客户端生效。
npc.update();
npc.forceUpdate();测试支持版本
版本分布
基本信息
插件名称
[API] Player NPC
作者
SergiFerry
平台
Bukkit / Spigot
支持版本
1.17 - 1.20
点赞数
13
最近版本
暂无数据
-