谁设置皮肤?弹力绳或插口

Posted

技术标签:

【中文标题】谁设置皮肤?弹力绳或插口【英文标题】:Who sets the skin? Bungeecord or Spigot 【发布时间】:2016-01-12 16:54:43 【问题描述】:

我正在为我的网络开发一个 nick 插件。我设法更改了播放器的名称。真的......它在 spigot 服务器上的任何地方都发生了变化。甚至其他插件都没有真实名称。 但现在我一直在改变玩家的皮肤,我有一个主要问题......谁来设置皮肤? Bungeecord 或 Spigot。事实上,Bungeecord 服务器是一个在线服务器,而所有的游戏服务器都是离线服务器,我认为也许 bungeecord-server 能够改变玩家的皮肤。在那种情况下......有没有人有工作方法?因为我几乎尝试了我在谷歌找到的所有东西。 非常感谢。

【问题讨论】:

【参考方案1】:

我的世界 1.8 及更高版本

皮肤来自 Mojang 服务器,该皮肤在玩家登录时由 Bungeecord 获取,然后通过连接传递到 Spigot。

Spigot 然后负责以GameProfile 对象的形式将此玩家皮肤发送给服务器上的其他玩家。如果我们检查这个 GameProfile 对象包含什么,我们会看到它包含一个signature 和一个skin data,签名是 Mojang 在换肤广告时基于皮肤生成的,并且皮肤数据包含用于皮肤和斗篷的纹理。如果你想更换皮肤,你应该用你使用的皮肤注册一个新的 Minecraft 帐户(或者希望找到一个现有的皮肤帐户),并使用他的皮肤数据和签名。

我的世界 1.7 及更低版本

在这些 Minecraft 版本中,皮肤是使用玩家的名字解析的。向http://minecraft.net/skin/<username>.png 发出请求。这将返回一个包含皮肤内容的简单 png 文件。如果您对在 1.8 中更改姓名的人尝试此方法,则会失败,因为此服务无法识别 1.8 用户名。

【讨论】:

另外,请注意,皮肤与 UUID 相关联,即使在名称更改后(希望)保持不变。 @Pokechu22 我不确定这是否属实,我过去与另一个开发人员制作了一个皮肤交换插件,交换了两个人的皮肤,效果很好 你是对的,过去是这样的,但是使用 mojang API,it uses UUIDs。旧的skins.minecraft.net API 使用名称。 IIRC,此更改是在 1.7.10 和 1.8 中进行的。 (这是基于我记得的;你可能是对的,但我很确定它不再那样工作了) 非常感谢。我设法改变了皮肤。但是现在我遇到了一个新问题:我与 Scoreboard Teams 一起为 PlayerList 和 OverHead 名称工作。现在我将假球员的名字添加到球队中。它头上的名字发生了变化,但在 TAB 列表中,有一个玩家的白色名字。每个玩家都可以看到,这是一个假玩家。 @NicolaUetz 你能为此发布一个新问题吗?这样会有更多bukkit 的人看到这个问题,从而增加获得好答案的几率

以上是关于谁设置皮肤?弹力绳或插口的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用Winform的皮肤文件?

苹果键盘怎么换皮肤 苹果手机键盘怎么换肤

Flex 按钮皮肤恢复默认设置

CSDN设置主题背景

PS--人物皮肤处理流程

博客园 SimpleMemory 皮肤设置