Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
такого метода нету (1.14.4)Возможно прокатит:
player.setPlayerProfile(new CraftPlayerProfile(new GameProfile(player.getUniqueId(), username)));
каким образомЧерез gameprofile вроде можно
В paper есть точно, ещё на 1.13такого метода нету (1.14.4)
paper spigot тебе нужен.каким образом
public boolean setSkin(Player p, String profile_name) {
CraftPlayer cp = (CraftPlayer) p;
GameProfile profile = cp.getProfile();
try {
profile = GameProfileBuilder.fetch(UUIDFetcher.getUUID(profile_name));
} catch (Exception e) {
return false;
}
Collection<Property> props = profile.getProperties().get("textures");
cp.getProfile().getProperties().removeAll("textures");
cp.getProfile().getProperties().putAll("textures", props);
PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
sendPacket(destroy);
PacketPlayOutPlayerInfo tabremove = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle());
sendPacket(tabremove);
double health = cp.getHealth();
Location loc = cp.getLocation();
cp.setHealth(0);
new BukkitRunnable() {
@Override
public void run() {
PacketPlayOutPlayerInfo tabadd = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle());
sendPacket(tabadd);
PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
for(Player all : Bukkit.getOnlinePlayers()) {
if(!all.getName().equals(cp.getName())) {
((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn);
}
}
p.spigot().respawn();
p.setHealth(health);
p.teleport(loc);
}
}.runTaskLater(Main.instance, 4);
return true;
}
копец жоска как он меняет скин а можно как то полегче?Решение на какую-то часть взято отсюда:
Код:public boolean setSkin(Player p, String profile_name) { CraftPlayer cp = (CraftPlayer) p; GameProfile profile = cp.getProfile(); try { profile = GameProfileBuilder.fetch(UUIDFetcher.getUUID(profile_name)); } catch (Exception e) { return false; } Collection<Property> props = profile.getProperties().get("textures"); cp.getProfile().getProperties().removeAll("textures"); cp.getProfile().getProperties().putAll("textures", props); PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId()); sendPacket(destroy); PacketPlayOutPlayerInfo tabremove = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle()); sendPacket(tabremove); double health = cp.getHealth(); Location loc = cp.getLocation(); cp.setHealth(0); new BukkitRunnable() { @Override public void run() { PacketPlayOutPlayerInfo tabadd = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle()); sendPacket(tabadd); PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle()); for(Player all : Bukkit.getOnlinePlayers()) { if(!all.getName().equals(cp.getName())) { ((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn); } } p.spigot().respawn(); p.setHealth(health); p.teleport(loc); } }.runTaskLater(Main.instance, 4); return true; }
JSON-щики GameProfileBuilder и UUIDFetcher: http://www.postcrafter.de/viewtopic.php?f=15&t=2116
и http://www.postcrafter.de/viewtopic.php?f=15&t=2186
его прям калбаситкопец жоска как он меняет скин а можно как то полегче?
версия старая
И отвалиться на других версиях. Молодец, два.Решение на какую-то часть взято отсюда:
Код:public boolean setSkin(Player p, String profile_name) { CraftPlayer cp = (CraftPlayer) p; GameProfile profile = cp.getProfile(); try { profile = GameProfileBuilder.fetch(UUIDFetcher.getUUID(profile_name)); } catch (Exception e) { return false; } Collection<Property> props = profile.getProperties().get("textures"); cp.getProfile().getProperties().removeAll("textures"); cp.getProfile().getProperties().putAll("textures", props); PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId()); sendPacket(destroy); PacketPlayOutPlayerInfo tabremove = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle()); sendPacket(tabremove); double health = cp.getHealth(); Location loc = cp.getLocation(); cp.setHealth(0); new BukkitRunnable() { @Override public void run() { PacketPlayOutPlayerInfo tabadd = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle()); sendPacket(tabadd); PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle()); for(Player all : Bukkit.getOnlinePlayers()) { if(!all.getName().equals(cp.getName())) { ((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn); } } p.spigot().respawn(); p.setHealth(health); p.teleport(loc); } }.runTaskLater(Main.instance, 4); return true; }
JSON-щики GameProfileBuilder и UUIDFetcher: http://www.postcrafter.de/viewtopic.php?f=15&t=2116
и http://www.postcrafter.de/viewtopic.php?f=15&t=2186
скажи лучше как взять файл из джарникаИ отвалиться на других версиях. Молодец, два.
скажи лучше как взять файл из джарника
его прям калбасит
public boolean setSkin(Player p, String profile_name) {
CraftPlayer cp = (CraftPlayer) p;
GameProfile profile = cp.getProfile();
try {
profile = GameProfileBuilder.fetch(UUIDFetcher.getUUID(profile_name));
} catch (Exception e) {
return false;
}
Collection<Property> props = profile.getProperties().get("textures");
cp.getProfile().getProperties().removeAll("textures");
cp.getProfile().getProperties().putAll("textures", props);
PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
sendPacket(destroy);
PacketPlayOutPlayerInfo tabremove = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle());
sendPacket(tabremove);
new BukkitRunnable() {
@Override
public void run() {
PacketPlayOutPlayerInfo tabadd = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle());
sendPacket(tabadd);
PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
for(Player all : Bukkit.getOnlinePlayers()) {
if(!all.getName().equals(cp.getName())) {
((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn);
}
}
((CraftServer)Bukkit.getServer()).getHandle().moveToWorld(cp.getHandle(), cp.getHandle().getWorldServer().getWorldProvider().getDimensionManager(), false, cp.getLocation(), true);
}
}.runTaskLater(Main.instance, 4);
return true;
}
как-то можно юзать skinrestorer без джарника в plugins?ПКМ по файлу -> Открыть в WinRAR -> дёргай все файлы которые хочешь.
вот версия с другим методом, плюс еще по идее баккит сервер должен заработать при таком методе. но на другие версии младше 1.14.4 это не заработает т.к. изменилась структура функции moveToWorld
Код:public boolean setSkin(Player p, String profile_name) { CraftPlayer cp = (CraftPlayer) p; GameProfile profile = cp.getProfile(); try { profile = GameProfileBuilder.fetch(UUIDFetcher.getUUID(profile_name)); } catch (Exception e) { return false; } Collection<Property> props = profile.getProperties().get("textures"); cp.getProfile().getProperties().removeAll("textures"); cp.getProfile().getProperties().putAll("textures", props); PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId()); sendPacket(destroy); PacketPlayOutPlayerInfo tabremove = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle()); sendPacket(tabremove); new BukkitRunnable() { @Override public void run() { PacketPlayOutPlayerInfo tabadd = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle()); sendPacket(tabadd); PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle()); for(Player all : Bukkit.getOnlinePlayers()) { if(!all.getName().equals(cp.getName())) { ((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn); } } ((CraftServer)Bukkit.getServer()).getHandle().moveToWorld(cp.getHandle(), cp.getHandle().getWorldServer().getWorldProvider().getDimensionManager(), false, cp.getLocation(), true); } }.runTaskLater(Main.instance, 4); return true; }