我知道如何将特定的ResourcePack发送到我服务器上的播放器。 我使用多个小型迷你游戏服务器,其中一个迷你游戏需要一个ResourcePack,因此我发送了具有此功能的ResourcePack:
p.setResourcePack("URL");
但是现在如果播放器被发送回大厅服务器,则不会自动删除ResourcePack。我真的想删除ResourcePack,因为如果玩家玩另一个游戏,他可能会被所有特殊纹理混淆。我已经尝试发送一个“null”ResourcePack
p.setResourcePack(null);
但这引发了异常。
http://hastebin.com/gojuqesafa.profile
那么有人知道另一个解决方案然后向他发送一个默认的ResourcePack吗?
答案 0 :(得分:1)
我认为最好的方法可能是将播放器资源包设置为默认值,这样做:
首先,创建一个名为default(或其他)的新文件夹。
然后进入你的.minecraft /版本打开你的插件支持的minecraft版本的文件夹,用winrar这样的程序打开jar文件,并将assets文件夹复制到你刚刚创建的默认纹理包文件夹中。然后使用以下内容创建一个名为pack.mcmeta的文件:
{
"pack": {
"pack_format": 1,
"description": "Default texture pack"
}
}
之后,创建一个新图像(大小最好应该是64x64或128x128)并将其设为黑色,因为它并不重要,然后将其上传到mediafire或其他网站并获取文件链接(用于mediafire) ,转到他们为您提供的链接,右键单击绿色按钮并按复制链接位置。
完成后,在您的代码中执行:
p.setResourcePack("URL TO DEFAULT TEXTURE PACK");
这不会将玩家纹理包设置为之前的状态,但会将其设置回默认的Minecraft纹理包
答案 1 :(得分:0)
正如javadocs所述,无法将播放器的资源包设置为默认值:
在Minecraft中没有将资源包重置为默认值的概念,因此玩家必须重新执行此操作。
你可以做的是拥有一个类似默认的资源包URL,然后让玩家下载它,但它不会是默认值。
也没有办法知道播放器使用的包是否为默认包(他可能有一个自定义包,不会是默认版本)