SpigotMaster文档 
public class SpigotMaster extends JavaPlugin 
SpigotMaster
- Package: com.neteasemc.spigotmaster;
 - Example:
import com.neteasemc.spigotmaster.SpigotMaster; SpigotMaster spigotMaster = (SpigotMaster)Bukkit.getPluginManager().getPlugin("SpigotMaster"); 
public Material getCustomItemMaterial(String customItemIdentifier) 
该接口已废弃
- Deprecated
 
public String getCustomItemIdentifier(ItemStack spigotItemStack) 
获取自定义物品名的identifier
- Parameters:
spigotItemStack— itemStack - Returns: String 自定义物品identifier
 
public ItemStack setCustomItemIdentifier(ItemStack spigotItemStack, String customIdentifier) 
设置自定义物品的identifier
Parameters:
spigotItemStack— itemStackcustomIdentifier— 自定义物品identifier
Returns: 设置后的itemStack
public ItemStack setItemLayer(ItemStack itemStack, int layer, String texture) 
设置物品的叠加贴图。与ModSDK的SetItemLayer用法一致
Parameters:
itemStack— itemStacklayer— 贴图的层级。可以为-2,-1,1,2,3。负数层级显示在物品下方,正数的层级显示在物品上方。层级大的显示在层级小的上方。texture— 贴图的名字,对应资源包item_texture.json中的key。
Returns: 设置后的itemStack(没设置成功会返回itemStack参数本身)
public String getItemLayer(ItemStack itemStack, int layer) 
获取物品的叠加贴图。与ModSDK的GetItemLayer用法一致
Parameters:
itemStack— itemStacklayer— 贴图的层级。可以为-2,-1,1,2,3。
Returns: 贴图的名字,不存在返回null
public ItemStack removeItemLayer(ItemStack itemStack, int layer) 
移除物品的叠加贴图。与ModSDK的RemoveItemLayer用法一致
Parameters:
itemStack— itemStacklayer— 贴图的层级。可以为-2,-1,1,2,3。
Returns: 移除后的itemStack(没移除会返回itemStack参数本身)
public void listenForSpigotMasterEvent(SpigotMasterEvent event, PyRpcHandler handler) 
监听spigot master的自定义事件
- Parameters:
event— SpigotMasterEvent的枚举值handler— 回调函数
 
public void listenForEvent(String namespace, String system, String event, PyRpcHandler handler) 
注册客户端事件
- Parameters:
namespace— 来源客户端系统的namespacesystem— 来源客户端系统的systemNameevent— 事件名handler— 回调函数
 
public void notifyToClient(Player player, String namespace, String system, String event, Map<String, Object> data) 
给指定玩家发送服务端事件
- Parameters:
player— 接收事件的玩家namespace— 在客户端系统使用ListenForEvent监听的namespacesystem— 在客户端系统使用ListenForEvent监听的systemNameevent— 事件名data— 事件参数。注意,要使用-2指代本地玩家的entityId。
 
public void notifyToMultiClients(List<Player> players, String namespace, String system, String event, Map<String, Object> data) 
给多个玩家发送服务端事件。 因为-2的entityId对于不同玩家来说都指代本机玩家,而非某个固定的实体,所以不要在多播中发送这种信息。
- Parameters:
players— 接收事件的玩家列表namespace— 在客户端系统使用ListenForEvent监听的namespacesystem— 在客户端系统使用ListenForEvent监听的systemNameevent— 事件名data— 事件参数
 
public void notifyToClientsNearby(@Nullable Player except, Location loc, double dist, String namespace, String system, String event, Map<String, Object> data) 
给某个位置附近一定半径内的所有玩家发送服务端事件。 因为-2的entityId对于不同玩家来说都指代本机玩家,而非某个固定的实体,所以不要在多播中发送这种信息。
- Parameters:
except— 发送事件时排除掉这个玩家,可以为null表示不排除loc— 圆心位置dist— 半径namespace— 在客户端系统使用ListenForEvent监听的namespacesystem— 在客户端系统使用ListenForEvent监听的systemNameevent— 事件名data— 事件参数
 
public void broadcastToAllClient(@Nullable Player except, World world, String namespace, String system, String event, Map<String, Object> data) 
给某个world内的所有玩家发送服务端事件。 因为-2的entityId对于不同玩家来说都指代本机玩家,而非某个固定的实体,所以不要在多播中发送这种信息。
- Parameters:
except— 发送事件时排除掉这个玩家,可以为null表示不排除world— 所在worldnamespace— 在客户端系统使用ListenForEvent监听的namespacesystem— 在客户端系统使用ListenForEvent监听的systemNameevent— 事件名data— 事件参数
 
public void broadcastToAllClient(@Nullable Player except, String namespace, String system, String event, Map<String, Object> data) 
给服务器内的所有玩家发送服务端事件。 因为-2的entityId对于不同玩家来说都指代本机玩家,而非某个固定的实体,所以不要在多播中发送这种信息。
- Parameters:
except— 发送事件时排除掉这个玩家,可以为null表示不排除namespace— 在客户端系统使用ListenForEvent监听的namespacesystem— 在客户端系统使用ListenForEvent监听的systemNameevent— 事件名data— 事件参数
 
public void enableCustomShopEntry(boolean useCustomShop) 
开启商城插件入口
- Parameters:
useCustomShop— 是否使用自定义商城入口,为false时,则使用官方商城入口 - Since: 1.2.3
 
public void openShop(Player player) 
打开指定玩家商城界面 注意:该接口需要使用商城插件,并调用接口开启商城插件
- Parameters:
player— 玩家 - Since: 1.2.3
 
public void closeShop(Player player) 
关闭指定玩家商城界面 注意:该接口需要使用商城插件,并调用接口开启商城插件
- Parameters:
player— 玩家 - Since: 1.2.3
 
public void showHintOne(Player player, @Nullable String text) 
推送冒泡提示给指定玩家 注意:该接口需要使用商城插件,并调用接口开启商城插件
Parameters:
player— 指定玩家text— 提示字符串
Since: 1.2.3
public void showHintTwo(Player player, String head, @Nullable String tail) 
推送 拼接后的头尾两串冒泡提示 给指定玩家 注意:该接口需要使用商城插件,并调用接口开启商城插件
Parameters:
player— 指定玩家head— 提示字符串首tail— 提示字符串尾
Since: 1.2.3
public void getPlayerOrderList(Player player, FutureCallback<Map<String, Object>> callback) 
获取玩家未发货订单列表
Parameters:
player— 指定玩家callback— FutureCallBack回调函数
Since: 1.2.3
Example: 回调参数为Map<String,Object>, 目前值为
Key Value 解释 player Player 玩家 json_result 订单json数据 玩家 
public void finPlayerOrder(Player player, List<String> orderList, FutureCallback<Map<String, Object>> callback) 
通知网易服务器完成指定玩家订单
Parameters:
player— 指定玩家orderList— 订单id列表callback— FutureCallBack回调函数
Since: 1.2.3
Example: 回调参数为Map<String,Object>, 目前值为
Key Value 解释 player Player 玩家 json_result 订单json数据 玩家 
public void enableClientChatExtension(Player player) 
开启官方聊天扩展功能,需要在CLIENT_LOAD_ADDON_FINISH事件中调用
- Parameters:
player— 指定玩家 - Since: 1.2.4
 - Example:
SpigotMaster.listenForSpigotMasterEvent(CLIENT_LOAD_ADDON_FINISH, new PyRpcHandler() { @Override public void onEvent(Player player, Map<String, Object> data) { SpigotMaster.enableClientChatExtension(player); } }); 
public void disableClientChatExtension(Player player) 
关闭官方聊天扩展功能,需要在CLIENT_LOAD_ADDON_FINISH事件中调用
- Parameters:
player— 指定玩家 - Since: 1.2.4
 - Example:
SpigotMaster.listenForSpigotMasterEvent(CLIENT_LOAD_ADDON_FINISH, new PyRpcHandler() { @Override public void onEvent(Player player, Map<String, Object> data) { SpigotMaster.disableClientChatExtension(player); } }); 
public String getCustomEntityIdentifier(Entity entity) 
获取自定义实体的identifier
- Parameters:
entity— 需要设置的entity实例 - Returns: String 自定义物品identifier
 - Since: 1.3.1
 
public Entity spawnEntity(Player player, Location loc, EntityType entityType, String neteaseClientIdentifier) 
生成自定义生物
Parameters:
player— 玩家loc— 生成位置entityType— 原版生物类型neteaseClientIdentifier— 自定义生物identifier
Returns: Entity 自定义生物实例
Since: 1.3.1
public void spawnEntity(Player player, Entity entity, String neteaseClientIdentifier) 
转换成自定义生物
Parameters:
player— 玩家entity— 生物实例neteaseClientIdentifier— 自定义生物identifier
Returns: Entity 自定义生物实例
Since: 1.3.1
public Entity spawnEntity(World world, Location loc, EntityType entityType, String neteaseClientIdentifier) 
生成自定义生物
Parameters:
world— world实例loc— 生成位置entityType— 原版生物类型neteaseClientIdentifier— 自定义生物identifier
Returns: Entity 自定义生物实例
Since: 1.3.8
public void spawnEntity(World player, Entity entity, String neteaseClientIdentifier) 
转换成自定义生物
Parameters:
world— 玩家entity— 生物实例neteaseClientIdentifier— 自定义生物identifier
Returns: Entity 自定义生物实例
Since: 1.3.8
public Entity setCustomEntityIdentifier(Entity entity, String customIdentifier) 
设置自定义实体的identifier
Parameters:
entity— 需要设置的entity实例customIdentifier— 自定义实体identifier
Returns: 设置后的entity
Since: 1.3.1
public boolean sendForm(Player player, Form form) 
发送formui给指定玩家
Parameters:
player— 指定玩家form— 表单类实例
Since: 1.3.2
public boolean sendForm(Player player, FormBuilder<?, ?, ?> formBuilder) 
发送formui给指定玩家
Parameters:
player— 指定玩家formBuilder— 表单builder类实例
Since: 1.3.2
public void setEntitySize(Entity entity, float height, float width) 
设置自定义实体的碰撞盒大小
Parameters:
entity— 需要设置的entity实例height— 实体高度width— 实体宽度
Since: 1.3.3
public void setMythicMobIdentifier(Entity entity, String mobType) 
设置mythicmob的identifier
如: SkeletonKing 会自动转为客户端的 mythicmob:skeletonKing
SkeletalMinion 会自动转为客户端的 mythicmob:skeletalMinion
即为:mythicmob:xxx xxx为首字母小写的mythicmob的identifier
Parameters:
entity— 需要设置的entity实例mobType— mythicmob的identifier
Since: 1.3.3
public void setEntityScale(Entity entity, float scale) 
设置自定义实体的scale
注意,由于Java并不提供修改Scale接口,因此该接口仅为客户端暂时生效接口
玩家重登;掉线重连;后续进入的玩家都只能看到默认的scale,不能看到通过接口修改后的scale!
请留意该接口的使用时机!
Parameters:
entity— 需要设置的entity实例scale— scale
Since: 1.3.5
public void sendBedrockPacket(int packetId, byte[] packetData) 
给所有玩家广播基岩版原生数据包,
注:网易基岩版客户端数据包协议库基于国际版MC进行修改,不符合当前BE客户端的协议版本(v503 MCBE版本1.18.30)的包体数据会导致客户端异常,包括但不限于断开连接,闪退以及游戏无响应
目前建议版本为v503
Parameters:
packetId— 数据包idpacketData— 数据包数据
Since: 1.3.7
Example:
//修改客户端时间 org.cloudburstmc.protocol.bedrock.packet.TimePacket timePacket = new TimePacket(); ByteBuf setTimeByteBuf = ByteBufAllocator.DEFAULT.heapBuffer(128); timePacket.setTime(20000); setTimeByteBuf = ByteBufAllocator.DEFAULT.heapBuffer(128); org.cloudburstmc.protocol.bedrock.codec.v503.Bedrock_v503.CODEC.tryEncode(Bedrock_v503.CODEC.createHelper(), setTimeByteBuf, timePacket); int setTimeDataLen = setTimeByteBuf.readableBytes(); byte[] setTimeData = new byte[setTimeDataLen]; setTimeByteBuf.readBytes(setTimeData, 0, setTimeDataLen); setTimeByteBuf.release(); spigotMaster.sendBedrockPacket(setTimePacketId, setTimeData);
public void sendBedrockPacketToPlayer(int packetId, byte[] packetData, Player player) 
给指定玩家广播基岩版原生数据包
注:网易基岩版客户端数据包协议库基于国际版MC进行修改,不符合当前BE客户端的协议版本(v503 MCBE版本1.18.30)的包体数据会导致客户端异常,包括但不限于断开连接,闪退以及游戏无响应
目前建议版本为v503
Parameters:
packetId— 数据包idpacketData— 数据包数据数组player— 发送的玩家
Since: 1.3.7
public void setEntityGravity(int entityId, float gravity) 
设置实体重力系数
注:需要注意设置实体的时机,如果通过监听entityspawnevent修改则无法生效,因为此时客户端还未同步到相关实体!
Parameters:
entityId— 需要设置的entityIdgravity— 重力系数,如果为0则应用世界重力
Since: 1.3.9
public String getItemIconPath(ItemStack item) 
获取物品贴图路径(只能获取到原生物品的贴图)
注: 由于大部分方块由四方向(side/front/back/top)共四张贴图组成,因此,该接口只会默认返回side方向贴图,而formui只能支持单独一张贴图,因此对于方块而言,单纯使用该接口获取贴图后显示,效果并不佳,建议自行绘制贴图
- Parameters:
item— 需要获取的ItemStack - Since: 1.3.10