当前位置: 首页 > 知识库问答 >
问题:

使用Bukkit 1.8自定义TabList

史骏
2023-03-14

我正在使用Bukkit API 1.8开发UHC Minecraft插件

我希望修改TabList(玩家列表)以显示插件名称和点数(如果可能的话,还可能显示玩家的击杀计数)

在互联网上搜索我发现这个填充:https://bukkit.org/threads/custom-player-lists-create-your-own-tab-list-display.429333/

不幸的是,当玩家打开列表时,这种方法经常会使我的服务器崩溃。

我得到这个错误:

[22:53:51 WARN]: java.lang.NoSuchMethodException: com.mojang.authlib.properties.PropertyMap.removeAll(java.lang.String)
[22:53:51 WARN]:        at java.lang.Class.getDeclaredMethod(Unknown Source)
[22:53:51 WARN]:        at fr.av.codelyokouhc.ReflectionUtil.getMethod(PlayerList.java:934)
[22:53:51 WARN]:        at fr.av.codelyokouhc.ReflectionUtil.invokeMethod(PlayerList.java:804)
[22:53:51 WARN]:        at fr.av.codelyokouhc.ReflectionUtil.invokeMethod(PlayerList.java:781)
[22:53:51 WARN]:        at fr.av.codelyokouhc.PlayerList$1.callBack(PlayerList.java:513)
[22:53:51 WARN]:        at fr.av.codelyokouhc.Skin$3$1.run(PlayerList.java:1129)
[22:53:51 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[22:53:51 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
[22:53:51 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:723)
[22:53:51 WARN]:        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[22:53:51 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[22:53:51 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[22:53:51 WARN]:        at java.lang.Thread.run(Unknown Source)

使用此代码:

PlayerList list = new PlayerList(p, PlayerList.SIZE_FOUR);
list.initTable();

list.setHeaderFooter("§bPlugin UHC", "§ePlugin by Av32000\n   With the help of  \n RedFly32   ");

以下是玩家列表的内容:Playerlist.java

共有1个答案

陆卓
2023-03-14

您需要将NMS和Mojang Authlib添加到依赖关系中

这里有一个简单的解决方案:键入this而不是spigot-api会同时添加

<dependency>
    <groupId>org.spigotmc</groupId>
    <artifactId>spigot</artifactId>
    <version>VERSION</version>
    <scope>provided</scope>
</dependency>
 类似资料:
  • 假设我有一个名为的方法的接口,它接受了的参数。在中有名为和的字段。我想模拟调用此方法的响应,并返回不同的模拟响应结果,只要ServiceRequest中的值不同。 我有以下代码,如follow(参考https://www.baeldung.com/mockito-argument-matchers),但它返回空指针异常。这里出了什么问题?

  • 问题内容: 是否可以使用Java API创建索引并指定自定义分析器?它支持在索引创建时添加映射,但是我找不到不通过HTTP PUT发送JSON的方法来执行以下操作: 我可以使用JSONBuilder构建这样的查询,但是据我所知,我在API中找不到运行它的位置,没有可以使用的任何东西,也没有可以使用的地方。什么是正确的方法? 问题答案: 您可以使用设置分析仪。有几种建立设置的方法。您可以从文本,地图

  • 包的声明和使用非常简单,在了解基本语法之后,下面通过一个案例演示在 Java 程序中声明包,以及不同包之间类的使用。 1)创建一个名为 com.dao 的包。 2)向 com.dao 包中添加一个 Student 类,该类包含一个返回 String 类型数组的 GetAll() 方法。Student 类代码如下: 3)创建 com.test 包,在该包里创建带 main() 方法的 Test 类。

  • 本章节中,简述自定义类的创建和使用方法,供参考。 创建自定义类 用户可以定义自己的类,通过继承 ThingJS 内部类(比如:Thing 类),对 ThingJS 进行扩展和封装。 我们推荐使用 ES6 语法定义一个类。例如,自定义汽车类 Car。 // 继承 Thing 类 class Car extends THING.Thing { constructor(app) { super(

  • 问题内容: 我看到一些新网站在其网站上使用自定义字体(常规Arial,Tahoma等除外)。 并且它们支持大量的浏览器。 怎么做到的?同时,如果可能的话,还会阻止人们自由下载字体。 问题答案: 通常,您可以在CSS中使用自定义字体。这是一个非常基本的示例: 然后,简单地在特定元素上使用字体: (是您的选择器)。 请注意,某些字体格式并非在所有浏览器上都有效;您可以使用fontsquirrel.co

  • 问题内容: 我正在尝试在Go中创建和使用自定义包。这可能很明显,但是我找不到很多信息。基本上,我在同一个文件夹中拥有这两个文件: mylib.go main.go 当我尝试时,出现此错误: 我尝试先运行,但似乎没有做任何事(没有生成文件,没有错误消息)。所以有什么想法我该怎么做? 问题答案: 首先,请务必阅读并理解“如何编写Go代码”文档。 实际答案取决于您“定制包装”的性质。 如果打算用于一般用