Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @EventHandler
- public void onJoin ( PlayerJoinEvent event )
- {
- sendActionBar ( event.getPlayer ( ), ChatColor.RED + "hai" );
- }
- public Class< ? > getNMSClass ( String classname )
- {
- String version = getServer ( ).getClass ( ).getPackage ( ).getName ( ).replace ( ".", "," ).split ( "," )[ 3 ] + ".";
- String name = "net.minecraft.server." + version + classname;
- Class< ? > nmsClass = null;
- try
- {
- nmsClass = Class.forName ( name );
- } catch ( ClassNotFoundException e )
- {
- e.printStackTrace ( );
- }
- return nmsClass;
- }
- // Skionz @ Bukkit.org
- public Object getConnection ( Player player ) throws SecurityException, NoSuchMethodException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InvocationTargetException
- {
- Method getHandle = player.getClass ( ).getMethod ( "getHandle" );
- Object nmsPlayer = getHandle.invoke ( player );
- Field conField = nmsPlayer.getClass ( ).getField ( "playerConnection" );
- Object con = conField.get ( nmsPlayer );
- return con;
- }
- public void sendActionBar ( Player player, String message )
- {
- try
- {
- Class< ? > packetPlayOutChat = getNMSClass ( "PacketPlayOutChat" );
- Constructor< ? > packetConstructor = packetPlayOutChat.getConstructor ( getNMSClass ( "IChatBaseComponent" ), byte.class );
- Class< ? > ichat = getNMSClass ( "IChatBaseComponent" );
- Class< ? > chatSerializer = ichat.getClasses ( )[ 0 ];
- Method csA = chatSerializer.getMethod ( "a", String.class );
- Object component = csA.invoke ( chatSerializer, "{\"text\": \"" + message + "\"}" );
- Object packet = packetConstructor.newInstance ( component, ( byte ) 2 );
- Method sendPacket = getConnection ( player ).getClass().getMethod ( "sendPacket", (getNMSClass ( "Packet" )) packetPlayOutChat.getSuperclass () );
- sendPacket.invoke ( packet );
- } catch ( Exception e )
- {
- e.printStackTrace ( );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement