小编Red*_*mpt的帖子

在 Minecraft 中使用 NMS 更改玩家皮肤(Bukkit/Spigot)

我目前正在开发一个插件,让您可以假设另一个玩家的身份。它几乎完美地做到了这一点:您的 UUID 和用户名已更改为您在服务器端假定其身份的用户的用户名,并且据服务器和插件所知,您似乎就是该玩家。您将拥有与他们相同的等级、相同的权限以及一切。我一直无法得到的一件事是皮肤。我曾想过当 UUID 是其他玩家时,玩家的皮肤会改变,但事实并非如此。我正在使用反射来更改 GameProfile 和 EntityPlayer 中的 UUID(uniqueID 字段继承自 Entity),并且所有获取玩家 UUID 的方法都返回插件设置的 UUID。我挖掘了反编译的 NMS 和 Bukkit/Spigot 论坛,但所有这些似乎都表明皮肤应该随着 UUID 改变。我将 PlayerQuitEvent 和 PlayerJoinEvent 发送到插件以模拟真实玩家离开和假定玩家加入,并向所有玩家发送数据包以从选项卡和游戏中删除旧玩家,然后添加新玩家。如果可以避免,我宁愿不使用 ProtocolLib。任何帮助将不胜感激,有人能指出我正确的方向吗?

提前致谢!

java minecraft bukkit

5
推荐指数
1
解决办法
1万
查看次数

为什么 Java 矢量 API 与标量相比如此慢?

我最近决定尝试一下 Java 的新孵化矢量 API,看看它能达到多快。我实现了两种相当简单的方法,一种用于解析 int,另一种用于查找字符串中字符的索引。在这两种情况下,与标量方法相比,我的矢量化方法都慢得令人难以置信。

这是我的代码:

public class SIMDParse {

private static IntVector mul = IntVector.fromArray(
        IntVector.SPECIES_512,
        new int[] {0, 0, 0, 0, 0, 0, 1000000000, 100000000, 10000000, 1000000, 100000, 10000, 1000, 100, 10, 1},
        0
);
private static byte zeroChar = (byte) '0';
private static int width = IntVector.SPECIES_512.length();
private static byte[] filler;

static {
    filler = new byte[16];
    for (int i = 0; i < 16; i++) {
        filler[i] = zeroChar;
    }
}

public static int parseInt(String str) …
Run Code Online (Sandbox Code Playgroud)

java simd vectorization

3
推荐指数
1
解决办法
2016
查看次数

标签 统计

java ×2

bukkit ×1

minecraft ×1

simd ×1

vectorization ×1