Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main extends JavaPlugin {
- private Field nameField;
- @Override
- public void onEnable() {
- nameField = getField(GameProfile.class, "name");
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (command.getName().equalsIgnoreCase("nick")) {
- if (sender instanceof Player) {
- if (args.length == 1) {
- Player p = (Player) sender;
- String name = args[0];
- System.out.println(name);
- CraftPlayer cp = (CraftPlayer) p;
- try {
- nameField.set(cp.getProfile(), name);
- } catch (IllegalArgumentException | IllegalAccessException e1) {
- e1.printStackTrace();
- }
- PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
- sendPacket(destroy);
- removeFromTab(cp);
- new BukkitRunnable() {
- @Override
- public void run() {
- addtoTab(cp);
- PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
- for (Player all : Bukkit.getOnlinePlayers()) {
- if (!((CraftPlayer)all).equals(cp)) {
- ((CraftPlayer)all).getHandle().playerConnection.sendPacket(spawn);
- }
- }
- }
- }.runTaskLater(this,5);
- }
- }
- }
- return false;
- }
- private void removeFromTab(CraftPlayer cp) {
- PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle());
- sendPacket(packet);
- }
- private void addtoTab(CraftPlayer cp) {
- PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle());
- sendPacket(packet);
- }
- private void sendPacket(Packet<?> packet) {
- for (Player current : Bukkit.getOnlinePlayers()) {
- ((CraftPlayer) current).getHandle().playerConnection.sendPacket(packet);
- }
- }
- private Field getField(Class<?> clazz, String name) {
- try {
- Field field = clazz.getDeclaredField(name);
- field.setAccessible(true);
- return field;
- } catch (NoSuchFieldException e) {
- e.printStackTrace();
- return null;
- } catch (SecurityException e) {
- e.printStackTrace();
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement