McLists一周年快乐
服务器已经添加了详细介绍信息板块
服主可以在管理后台来提交自己服务器介绍信息。
服务器介绍信息提交后,管理人员会进行审核
审核通过后会在服务器详细页面进行显示
提交服务器介绍信息会让新玩家更好的了解你的服务器哦~
添加图片信息,也会让百度等搜索引擎更好的收录您的服务器哦~
管理平台地址:传送门
[API] Player NPC

[API] Player NPC - Player NPC API - 玩家NPC数据包库

Player NPC Lib 通过数据包 API 支持 1.17、1.18、1.19 和 1.20 版本
Bukkit / Spigot 作者 SergiFerry 支持版本 1.17 - 1.20
服务器使用量
未统计
服务玩家数
未统计
下载量
64,837
插件详细介绍

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();
测试支持版本
1.17 1.18 1.19 1.20
版本分布
基本信息
插件名称 [API] Player NPC
作者 SergiFerry
平台 Bukkit / Spigot
支持版本 1.17 - 1.20
点赞数 13
最近版本
暂无数据 -

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人次:3,028,325  |  今日访问人次:12,453  |  昨日访问人次:11,147

独立 IP:4,880  |  最近24小时有3,877人访问本站

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6