修改方块生成范围集中的问题
This commit is contained in:
@@ -60,7 +60,17 @@ public class SkinManager {
|
||||
try {
|
||||
plugin.logInfo("开始加载皮肤: " + player.getName());
|
||||
|
||||
String skinBase64 = getSkinFromPlayerProfile(player);
|
||||
String skinBase64 = null;
|
||||
|
||||
// 检查是否使用SkinsRestorer插件
|
||||
if (plugin.getConfigManager().useSkinsRestorer()) {
|
||||
skinBase64 = getSkinFromSkinsRestorer(player);
|
||||
}
|
||||
|
||||
// 如果SkinsRestorer未启用或获取失败,使用PlayerProfile
|
||||
if (skinBase64 == null) {
|
||||
skinBase64 = getSkinFromPlayerProfile(player);
|
||||
}
|
||||
|
||||
if (skinBase64 == null) {
|
||||
skinBase64 = getDefaultSteveSkin();
|
||||
@@ -87,6 +97,41 @@ public class SkinManager {
|
||||
});
|
||||
}
|
||||
|
||||
private String getSkinFromSkinsRestorer(Player player) {
|
||||
try {
|
||||
// 检查SkinsRestorer插件是否存在
|
||||
if (Bukkit.getPluginManager().getPlugin("SkinsRestorer") == null) {
|
||||
plugin.logInfo("SkinsRestorer插件未安装,跳过从SkinsRestorer获取皮肤");
|
||||
return null;
|
||||
}
|
||||
|
||||
plugin.logInfo("尝试从SkinsRestorer获取皮肤: " + player.getName());
|
||||
|
||||
// 使用反射调用SkinsRestorer API
|
||||
Class<?> skinsRestorerClass = Class.forName("net.skinsrestorer.api.SkinsRestorerAPI");
|
||||
Object skinsRestorerAPI = skinsRestorerClass.getMethod("getApi").invoke(null);
|
||||
|
||||
// 获取玩家皮肤数据
|
||||
Class<?> skinDataClass = Class.forName("net.skinsrestorer.api.property.SkinProperty");
|
||||
Object skinProperty = skinsRestorerAPI.getClass().getMethod("getSkinData", String.class)
|
||||
.invoke(skinsRestorerAPI, player.getName());
|
||||
|
||||
if (skinProperty != null) {
|
||||
String value = (String) skinProperty.getClass().getMethod("getValue").invoke(skinProperty);
|
||||
String signature = (String) skinProperty.getClass().getMethod("getSignature").invoke(skinProperty);
|
||||
|
||||
plugin.logInfo("成功从SkinsRestorer获取皮肤: " + player.getName());
|
||||
return player.getUniqueId().toString();
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
plugin.logWarning("SkinsRestorer API类未找到,插件可能未安装: " + e.getMessage());
|
||||
} catch (Exception e) {
|
||||
plugin.logWarning("从SkinsRestorer获取皮肤失败: " + e.getMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getSkinFromPlayerProfile(Player player) {
|
||||
try {
|
||||
PlayerProfile profile = player.getPlayerProfile();
|
||||
|
||||
Reference in New Issue
Block a user