Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.maxl.nick;
- import java.lang.reflect.Field;
- import java.util.Collection;
- import java.util.HashMap;
- import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.scheduler.BukkitRunnable;
- import com.mojang.authlib.GameProfile;
- import com.mojang.authlib.properties.Property;
- import de.maxl.nick.utils.GameProfileBuilder;
- import de.maxl.nick.utils.UUIDFetcher;
- import de.maxl.nick.utils.Utils;
- import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
- import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
- import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
- import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
- public class Nick {
- private static Main main = Main.getInstance();
- public static Field name;
- public static HashMap<Player, String> current = new HashMap<>();
- public static void nickPlayer(Player p, String nick) {
- CraftPlayer cp = (CraftPlayer) p;
- current.put(p, nick);
- try {
- name.set(cp.getProfile(), nick);
- } catch (Exception e) {
- }
- if(!setSkin(cp, nick)){
- p.sendMessage("§cDu konntest nicht genickt werden!");
- return;
- }
- PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
- Utils.sendPacket(destroy, p);
- PacketPlayOutPlayerInfo removeTab = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER,
- cp.getHandle());
- Utils.sendPacket(removeTab);
- new BukkitRunnable() {
- @Override
- public void run() {
- PacketPlayOutPlayerInfo addTab = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER,
- cp.getHandle());
- Utils.sendPacket(addTab);
- PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
- Utils.sendPacket(spawn, p);
- }
- }.runTaskLater(main, 4);
- }
- public static boolean setSkin(CraftPlayer cp, String nick) {
- GameProfile skingp = cp.getProfile();
- try {
- skingp = GameProfileBuilder.fetch(UUIDFetcher.getUUID(nick));
- } catch (Exception e) {
- cp.sendMessage("§cDer Skin konnte nicht geladen werden.");
- e.printStackTrace();
- return false;
- }
- Collection<Property> prop = skingp.getProperties().get("textures");
- cp.getProfile().getProperties().removeAll("textures");
- cp.getProfile().getProperties().putAll("textures", prop);
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment