Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1.  
  2. @EventHandler
  3. public void onJoin ( PlayerJoinEvent event )
  4. {
  5. sendActionBar ( event.getPlayer ( ), ChatColor.RED + "hai" );
  6. }
  7.  
  8. public Class< ? > getNMSClass ( String classname )
  9. {
  10. String version = getServer ( ).getClass ( ).getPackage ( ).getName ( ).replace ( ".", "," ).split ( "," )[ 3 ] + ".";
  11. String name = "net.minecraft.server." + version + classname;
  12. Class< ? > nmsClass = null;
  13. try
  14. {
  15. nmsClass = Class.forName ( name );
  16. } catch ( ClassNotFoundException e )
  17. {
  18. e.printStackTrace ( );
  19. }
  20. return nmsClass;
  21. }
  22.  
  23. // Skionz @ Bukkit.org
  24. public Object getConnection ( Player player ) throws SecurityException, NoSuchMethodException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InvocationTargetException
  25. {
  26. Method getHandle = player.getClass ( ).getMethod ( "getHandle" );
  27. Object nmsPlayer = getHandle.invoke ( player );
  28. Field conField = nmsPlayer.getClass ( ).getField ( "playerConnection" );
  29. Object con = conField.get ( nmsPlayer );
  30. return con;
  31. }
  32.  
  33. public void sendActionBar ( Player player, String message )
  34. {
  35. try
  36. {
  37. Class< ? > packetPlayOutChat = getNMSClass ( "PacketPlayOutChat" );
  38. Constructor< ? > packetConstructor = packetPlayOutChat.getConstructor ( getNMSClass ( "IChatBaseComponent" ), byte.class );
  39. Class< ? > ichat = getNMSClass ( "IChatBaseComponent" );
  40. Class< ? > chatSerializer = ichat.getClasses ( )[ 0 ];
  41. Method csA = chatSerializer.getMethod ( "a", String.class );
  42. Object component = csA.invoke ( chatSerializer, "{\"text\": \"" + message + "\"}" );
  43. Object packet = packetConstructor.newInstance ( component, ( byte ) 2 );
  44. Method sendPacket = getConnection ( player ).getClass().getMethod ( "sendPacket", (getNMSClass ( "Packet" )) packetPlayOutChat.getSuperclass () );
  45. sendPacket.invoke ( packet );
  46. } catch ( Exception e )
  47. {
  48. e.printStackTrace ( );
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement